类的构造函数
2016-03-17 22:30
351 查看
#include <iostream> #include <string> using namespace std; class Person { public: Person(const std::string &nm) :name(nm), age(18) // 这是构造函数,构造函数没有返回值,名称和类的名称一样,可以在后边用(:)来初始化参数,这个比在函数体里边写执行的速度要快, // 类中必须要有构造函数,要是没有C++就自己加上一个构造函数, { } public: std::string name; int age; }; class Sales_item { public: // explicit 是显示用在构造函数的前面 explicit Sales_item(const std::string &book) :isbn(book), units_sold(0), revenue(0.0){} explicit Sales_item(std::istream &is) { is >> *this; } explicit Sales_item() :units_sold(0), revenue(0.0){} friend std::istream& operator>>(std::istream&, Sales_item&);// 利用友元函数设计一个流输入函数的重载, private: std::string isbn; unsigned units_sold; double revenue; }; inline istream& operator>>(istream& in, Sales_item& s) { double price; in >> s.isbn >> s.units_sold >> price; if (in) s.revenue = s.units_sold * price; else s = Sales_item(); return in; } class Data { public: int ival; char *ptr; }; int main() { Data n = { 6, "cui" }; // 这是C语言的写法,在其对应得类里面不能有构造函数, Person a("小崔"); Sales_item item1; Sales_item item2("0-201-33222-2"); Sales_item *p = new Sales_item; // 用指针创建一个构造函数, cout << a.name << endl; cout << a.age << endl; delete p; return 0; }
相关文章推荐
- angular 关于 factory、service、provider的相关用法
- DrawerLayout + Toolbar
- Hibernate中get方法和load方法的区别
- SQL Server 获取数据库表的元信息
- Java中String类的isEmpty()方法
- poj--1789 Truck History(最小生成树Prim算法)
- 北化oj 2374- A+B结果的个位数
- LeetCode 59 Spiral Matrix II
- 大数乘法(二)
- Linux下物理内存和虚拟内存交换机制
- 在写一个iOS应用之前必须做的7件事(附相关资源)
- STL map
- 最近读到的好博文分享一下
- (2016春) 作业4:结对编程—词频统计
- 面向对象编程(五)多态--对象上下转型,动态绑定和静态绑定,应用
- usb设备驱动描述,王明学learn
- Zookeeper 5、Zookeeper应用场景
- 如何阅读学术论文
- 关于Linux的进程和线程
- 线程栈