代码详解c++构造函数

/*
代码详解构造函数 
*/
#include <iostream>
#include<string>

using namespace std;

class Person
{
	public:
		Person (const std::string &nm) :name(nm),age(22)
		{
			
		}
	public:
		std::string name;
		//int age=22; 错误写法 
		int age; 
 } ; 
 class Dog
 {
 	public:
 		Dog():legs(4)
 		{
 			//this->legs=4; 当是const 定义的常量时,这样写不对,只能在初始化列表里 
		 }
 	private:
 		std::string name;
 		const int legs; //在类当中const 常量,只能写在初始化列表里,不能使用this->legs=4 这样的初始化 
  } ;
  
 class Sales_item
 {
 	public://构造函数为了保险起见,应该前面加上 explicit  
 		explicit Sales_item(const std::string &book=" "):isbn(book),units_sold(0),revenue(0.0) //够着函数可以有多个,即可以重载 
 		{
		 }	
	//	Sales_item():units_sold(0),revenue(0.0)//构造函数没有返回值,所以前面什么都不能加 
 	//	{}  当&book=" " 有一个默认的空值时,那么这个不带参数的构造函数可以省略 
		explicit Sales_item(const std::string &book, int units, double amount)
			:isbn(book),units_sold(units),revenue(amount)//建议使用初始 化列表速度快,初始化列表的顺序无所谓, 
			{
				
			 } 
 
		explicit Sales_item(std::istream &is)
		{
			is >> *this;
		}
		explicit Sales_item(int units, double price)//构造函数永远都不需要const 
		{
			this->units_sold=units;//这种赋值方法不建议 
			this->revenue=price;
		 } 
		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;	
}

 
int main()
{

	Person a("张三");
	Sales_item item1;
	Sales_item item2("11-22-33");
	Sales_item *p= new Sales_item(); //使用了new 要记得用delete 进行删除 
	const Sales_item item3;
	
	cout<<a.name<<endl;
	delete p; 
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
迅捷是一个功能强大的C/C++代码分析软件。可以处理数百万行的源程序代码。支持标准及K&R风格的C/C++。对每一个源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、分文件夹的定义目录、构造层次、函数调用关系、诊断性输出等。仅须按一键就可以非常方便地扩展各种类型的定义和调用关系。所有这些结合起来帮助用户快速地阅读、理解、研究和维护大规模的源代码工程。 包含各种友好的用户界面效果,如对窗口的标签化排列、任意分隔、自动隐藏、浮动、拖拉等。可以使用户快速地找到每一个功能性窗口并重新以各种格局加以任意组合。 包含有一个多功能的文本及十六进制编辑器。便利性特色包括:句法着色、自动完成词汇、对整个内容的自动格式化。可以动态地显示一个文件中的标示词。可以设置多个文件定义来指定对文件的处理、颜色及样式等。可以较快地定位当前或以前打开的某个文件。 包含一个可以同时打开多个工程的工作区,有许多命令可以处理某一个或所有的工程。有强大的功能可以同时在多个文件、文件夹、工程中进行后台查找和替换。 包含一个强大的比较模块,可以进行文件间或文件夹间的后台对比。提供有许多命令来显示目标之间的差别。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值