c++ 小技巧(四)

1.一般变量在main中才能开辟内存空间,

2. 手动创建构造函数和默认的构造函数

  • 构造函数种类:无参构造,有参构造,拷贝构造
  • 默认构造函数:无参默认构造,拷贝默认构造,默认等号操作符,析构默认

1.构造函数和类的名称完全相同,
2.构造函数不能有返回类型,void也不可以
3.构造函数一定是public的
4.不带参数的构造函数也称默认构造函数
5.构造函数可以被重载,一个类可以有多个构造函数的重载
6.如果类里面没有声明构造函数,系统会自动生成一个构造函数(但是元素没有做初始化)
7.析构函数不能被重载,而且析构函数没有参数,没有返回值
8.全局的构造函数要先于main()函数
9.析构函数可以显示调用(很少用)


练习一下
1.构造函数的重载,无参数的构造函数,如果自己没有创建构造函数,编译器会默认提供一个构造函数和析构函数
2.构造函数和析构函数都没有返回值
3.析构函数肯定没有形参,析构函数不能重载
4.拷贝构造函数, 
5.什么是赋值,什么是拷贝构造函数要弄清楚
6.构造函数需要的时候就写,不需要的时候可以不写
7.当没有任何现实的构造函数(显示的无参,显示的有参,显示的拷贝构造)的时候,默认无参构造函数就会出现
8.当没有出现"显示的拷贝函数“,默认的拷贝构造函数就会出现。
9.会有的默认析构函数- 如果有垃圾需要回收的时候才写,否则就用系统默认的析构函数就可以 ---通常用来处理堆上的数据
10.当没有出现"显示的析构函数“,默认的析构函数就会出现。
11.析构函数的调用顺序,跟析构相反,谁先构造的,谁后析构 (跟栈的顺序一样,先入后出)
12.当一个函数返回一个匿名对象的时候,如果函数外部没有任何变量去接收它,这个匿名对象将不会再使用,编译器会直接将这个匿名对象回收掉,而不是等待整个函数执行完毕再回收。
(尽量不这么用)
13.避免返回值是一个class
14.不能在构造函数里调用构造函数,比较危险
15.析构函数并不是析构函数对象本身,而是析构函数对象额外开辟的内存空间

3.析构函数肯定没有形参,析构函数不能重载
4.拷贝构造函数, 
5.什么是赋值,什么是拷贝构造函数要弄清楚
6.构造函数需要的时候就写,不需要的时候可以不写
7.当没有任何现实的构造函数(显示的无参,显示的有参,显示的拷贝构造)的时候,默认无参构造函数就会出现
8.当没有出现"显示的拷贝函数“,默认的拷贝构造函数就会出现。
9.会有的默认析构函数- 如果有垃圾需要回收的时候才写,否则就用系统默认的析构函数就可以 ---通常用来处理堆上的数据
10.当没有出现"显示的析构函数“,默认的析构函数就会出现。
11.析构函数的调用顺序,跟析构相反,谁先构造的,谁后析构 (跟栈的顺序一样,先入后出)
12.当一个函数返回一个匿名对象的时候,如果函数外部没有任何变量去接收它,这个匿名对象将不会再使用,编译器会直接将这个匿名对象回收掉,而不是等待整个函数执行完毕再回收。
(尽量不这么用)
13.避免返回值是一个class
14.不能在构造函数里调用构造函数,比较危险
15.析构函数并不是析构函数对象本身,而是析构函数对象额外开辟的内存空间

class Point
{
	int m_x;
	int m_y;
public:
	Point(int x, int y)//构造函数需要的时候就写,不需要的时候可以不写
	{
		m_x = x, m_y = y;
	}
	Point()
	{

	}
	~Point()
	{

	}
	Point(const Point& another)
	{

	}
};
using namespace std;

int main() 
{
	Point p1;
	Point p2 = p1;//拷贝构造函数方法一
	Point p3(p1);//拷贝构造函数方法二
	Point p4;
	p4 = p1;//这种写法不是拷贝构造函数,而是p4的赋值

	return 0;
}
Test(const Test &another)//代表只读的意思
{

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值