获赞
1.7W
粉丝
2915
关注
396
看过 TA
5952
中国传媒大学
2018
运营
IP属地:北京
有问题请找社区小助手,此号暂停使用
私信
关注
2019-12-09 11:27
社区规范更新号
0 点赞 评论 收藏
分享
2019-12-08 10:10
社区规范更新号
0 点赞 评论 收藏
分享
2019-12-08 09:57
社区规范更新号
0 点赞 评论 收藏
分享
2019-12-07 15:03
社区规范更新号
0 点赞 评论 收藏
分享
2019-12-04 18:13
社区规范更新号
0 点赞 评论 收藏
分享
2019-12-04 10:26
社区规范更新号
0 点赞 评论 收藏
分享
2019-12-03 16:28
社区规范更新号
问题描述:         产品生命周期4个阶段的产品策略都有哪些?         回答有奖:       选取一位认真回答问题的牛友,赠送200牛币!   ▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~   Tips.牛币兑换中心          你问我答问题汇总:点击进入   关注你问我答栏目:点击关注       你问我答 - 答问题,成大佬,拿牛币!   你问我答是牛客新栏目,每周1期几个问题,...
白驹之过隙:为什么上面回答者非要要文绉绉地复制粘贴呢? “回答尽量有自己的思考”——摘录自版块头部。 产品生命周期如同一架城市中常见的高架人行道桥:从平地踏上上升坡度,到达桥顶平面走,从桥面踏下下降坡度最终回到地面。 上坡:策略目的,尽可能吸纳更多的用户。策略的方式,常见的饥饿营销,通过线上线下的广告发布广而告之;常见的产品活动,抓住人性的弱点,以小便宜诱之,特别是用虚拟产品币兑换实体物品,或者初期简单的无投入送优惠,比如一些产品“走路赚币,看视频赚币,网络抽奖转盘赚币”…… 桥面:策略目的,尽可能维持现有客户,稳中求增。策略的方式,常见的指数增长型的广告扩散,基于现有客户群体的优惠同时额外增加对现有客户通过分享给社交群、发送给好友等各大社交平台上一传十,十传百……进行的优惠和活动。…… 下坡:策略目的,尽可能延缓客户数量下滑的趋势。当产品处于消退期,大势已去,想方设法对支持的老客户进行抚慰式的优惠活动,增加一些对产品的调研、客户的需求意见来为下一款产品的产生做好群众基础。比如:某共享单车做的相当差劲……就是在下坡期间还贪得无厌……不敢想象如果以他的名义来下一跨产品会有怎么的效果。
0 点赞 评论 收藏
分享
2019-12-03 16:27
社区规范更新号
问题描述:         C++什么时候要用虚析构函数?         回答有奖:       选取一位认真回答问题的牛友,赠送200牛币!   ▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~   Tips.牛币兑换中心          你问我答问题汇总:点击进入   关注你问我答栏目:点击关注       你问我答 - 答问题,成大佬,拿牛币!   你问我答是牛客新栏目,每周1期几个问题,   牛友...
SunburstRu...:这个是继承才产生的问题,比如A类是B类的父类,学生时代可能遇到可能的代码比较多的是: A *a=new B; 是一个父类指针指向子类开辟的空间,然后delete a的时候只会delete掉指针,不会delete掉指向的空间。 void func(A *a); 这里的func函数可以接受A类 对象指针也可以接受B类对象指针然后在func里面,所以通常简便处理,我们只会写这样一个函数去处理A类对象指针以及它所有的继承类,不然如果A有100个继承类,每个类都写一样的方法,继承还有什么用?仔细看如下代码: #include <iostream> #include <memory> #include <string> #include <thread> #include <vector> #include <mutex> #include <random> class A { public: A() { std::cout << "Construct A:" << std::endl; } virtual void print() { std::cout << "A:" << std::endl; } ~A() { std::cout << "~A:" << std::endl; } }; class B:public A { public: B() { std::cout << "Construct B:" << std::endl; } void print() { std::cout << "B:" << std::endl; } ~B() { std::cout << "~B:" << std::endl; } }; void func(A *a) { a->print(); } int main() { A *a = new A; A *b = new B; func(a); func(b); delete a; delete b; return 0; } 输出结果如下:由于A没有虚析构函数,B类构造了但是没能析构,这样的情况多了就会导致内存泄漏。类似的工作里面还会经常用std::vector<A*>来存储所有A类以及A类继承类的指针,那么一定要把所有的父类(A类)的析构函数设为虚析构函数。查看图片
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务