您的位置:首页 > 其它

类的构造函数

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: