商业周刊:别了,摩托罗拉

仅仅在10年前,摩托罗拉还一直是引领尖端技术和卓越典范的代表,享有着全球最受尊敬公司之一的尊崇地位.它一度前无古人地每隔10年便开创一个工业,有 的10年还开创两个.但当这些工业兴盛起来,进入寡头竞争的成熟阶段之后,它却遭遇一次又一次重大的挫败.

最近10年,它已经退出了自己所开创的半导体、汽车电子——这些业务在它的手上陷入困境,它一旦撒手往往又起死回生.而最新的迹象显示,摩托罗拉很可能要放弃它的手机业务.如果这个令人遗憾的消息真的变为现实,它将退守至两个狭小的B2G、B2B市场,不再是一家B2C公司.这家美国“国宝级” 公司究竟是如何走到今天这一步?
 

商务周刊封面:别了,摩托罗拉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我明白了。下面是一个简单的杂志订阅管理系统的代码实现: ``` #include <iostream> #include <string> using namespace std; class Magazine { protected: string name; string period; double price; public: static int count; Magazine(string n, string p, double pr) : name(n), period(p), price(pr) { count++; } virtual void display() { cout << "Name: " << name << endl; cout << "Period: " << period << endl; cout << "Price: " << price << endl; } }; class WeeklyMagazine : public Magazine { public: WeeklyMagazine(string n, double pr) : Magazine(n, "weekly", pr) {} void display() { cout << "Weekly Magazine:" << endl; Magazine::display(); } }; class MonthlyMagazine : public Magazine { public: MonthlyMagazine(string n, double pr) : Magazine(n, "monthly", pr) {} void display() { cout << "Monthly Magazine:" << endl; Magazine::display(); } }; int Magazine::count = 0; class MagazineSet { private: Magazine* magazines[100]; public: static int count; MagazineSet() {} MagazineSet(const MagazineSet& other) { for (int i = 0; i < other.count; i++) { if (dynamic_cast<WeeklyMagazine*>(other.magazines[i])) { magazines[i] = new WeeklyMagazine(*dynamic_cast<WeeklyMagazine*>(other.magazines[i])); } else if (dynamic_cast<MonthlyMagazine*>(other.magazines[i])) { magazines[i] = new MonthlyMagazine(*dynamic_cast<MonthlyMagazine*>(other.magazines[i])); } } count = other.count; } MagazineSet& operator=(const MagazineSet& other) { if (this != &other) { for (int i = 0; i < count; i++) { delete magazines[i]; } for (int i = 0; i < other.count; i++) { if (dynamic_cast<WeeklyMagazine*>(other.magazines[i])) { magazines[i] = new WeeklyMagazine(*dynamic_cast<WeeklyMagazine*>(other.magazines[i])); } else if (dynamic_cast<MonthlyMagazine*>(other.magazines[i])) { magazines[i] = new MonthlyMagazine(*dynamic_cast<MonthlyMagazine*>(other.magazines[i])); } } count = other.count; } return *this; } void addMagazine(Magazine* mag) { magazines[count] = mag; count++; } void display() { for (int i = 0; i < count; i++) { magazines[i]->display(); } } }; int MagazineSet::count = 0; int main() { MagazineSet set1; WeeklyMagazine mag1("Magazine1", 5.0); MonthlyMagazine mag2("Magazine2", 10.0); set1.addMagazine(&mag1); set1.addMagazine(&mag2); cout << "MagazineSet1:" << endl; set1.display(); MagazineSet set2 = set1; set2.addMagazine(new WeeklyMagazine("Magazine3", 3.0)); cout << "MagazineSet2:" << endl; set2.display(); return 0; } ``` 在上面的代码中,我们定义了一个Magazine类和两个子类WeeklyMagazine和MonthlyMagazine,分别表示周刊和月刊。MagazineSet类用于管理多个杂志的订阅,其中包含了一个Magazine类型的数组magazines,以及一个静态成员变量count,记录当前订阅的杂志数目。 在Magazine类中,我们定义了一个静态成员变量count,用于记录杂志的总数。同时,我们还定义了一个虚函数display,以实现多态。在子类WeeklyMagazine和MonthlyMagazine中,我们重载了这个函数,以实现不同的输出效果。 在MagazineSet类中,我们重载了复制构造函数和赋值运算符,以便正确地复制一个MagazineSet对象。在addMagazine函数中,我们将要添加的杂志指针存储到数组中,并增加count计数器。在display函数中,我们遍历数组并调用display函数输出每个杂志的信息。 在main函数中,我们创建了一个MagazineSet对象set1,并向其中添加了两个杂志对象。然后,我们复制了set1对象,并向复制的对象set2中添加了一个杂志对象。最后,我们分别输出了set1和set2对象的杂志信息。 希望这个简单的代码示例能帮助你更好地理解继承和多态的概念。如果你还有其他问题或者需要进一步的解释,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值