c++初学之函数
2016-11-12 16:58
134 查看
今天看了c++,做个笔记
1.函数的重载
定义多个函数,函数名都相同,但是形式参数不同的行为,成为函数重载。
2.函数的默认参数
定义如下函数:
void func(int=0,int=0);
函数实现:
void func(int x,int y){
cout << x << y << endl;
}
测试如下:
int main(){
func();
func(1);
func(1,2);
}
结果如下:
00
10
12
3.对象成员变量的初始化
可以使用如下的方法进行初始化:
A():i(3),j(5){}
A(int x,int y):i(x),j(y){}
A为构造函数。这个式子表示:在创建A对象的时候,会对i和j进行初始化操作。这种对于引用和const修饰的变量比较重要。
4.复制构造函数
类默认会有一个复制构造函数,参数为该类的引用。会将成员变量的值进行复制。
但是这种复制,对于成员变量含有指针时,复制的是指针。一旦被复制的对象被删除,那么复制出来的对象通过一个指针引用的地址,可能根本不存在
因此,对于这种情况,需要重写复制构造函数。
5.堆栈的大小。
堆是需要程序员主动申请和释放的空间,大小受系统内存影响。
栈是程序在编译的时候就确定了的值,大小为2M,不是太多。
6.构造函数和类型转换。
可以把数字当作对象赋值给一个对象。首先判断对象的构造函数是否与给定的数字类型匹配,如果匹配,则调用构造函数,并将这个数字传递进去
如下:
A(int x){}
使用的时候,可以直接如下:
A a = 100;
今天就看了这么些知识点,明天继续。
1.函数的重载
定义多个函数,函数名都相同,但是形式参数不同的行为,成为函数重载。
2.函数的默认参数
定义如下函数:
void func(int=0,int=0);
函数实现:
void func(int x,int y){
cout << x << y << endl;
}
测试如下:
int main(){
func();
func(1);
func(1,2);
}
结果如下:
00
10
12
3.对象成员变量的初始化
可以使用如下的方法进行初始化:
A():i(3),j(5){}
A(int x,int y):i(x),j(y){}
A为构造函数。这个式子表示:在创建A对象的时候,会对i和j进行初始化操作。这种对于引用和const修饰的变量比较重要。
4.复制构造函数
类默认会有一个复制构造函数,参数为该类的引用。会将成员变量的值进行复制。
但是这种复制,对于成员变量含有指针时,复制的是指针。一旦被复制的对象被删除,那么复制出来的对象通过一个指针引用的地址,可能根本不存在
因此,对于这种情况,需要重写复制构造函数。
5.堆栈的大小。
堆是需要程序员主动申请和释放的空间,大小受系统内存影响。
栈是程序在编译的时候就确定了的值,大小为2M,不是太多。
6.构造函数和类型转换。
可以把数字当作对象赋值给一个对象。首先判断对象的构造函数是否与给定的数字类型匹配,如果匹配,则调用构造函数,并将这个数字传递进去
如下:
A(int x){}
使用的时候,可以直接如下:
A a = 100;
今天就看了这么些知识点,明天继续。
相关文章推荐
- 六、c++函数初学
- 总结性的谈一谈函数传参的知识。(c/c++初学的一定要看)
- c++初学之函数
- 在Delphi与C++之间实现函数与对象共享
- C++初学解惑(4)——构造函数(上)
- C++对象模型之函数成员(5)
- C++对象模型之函数成员(3)
- C++的函数和模板函数
- 在Delphi与C++之间实现函数与对象共享
- 刚才在论坛上看到的一些学习C++的东东,可能对初学有点用
- 混沌 In C++::是类型?还是函数调用?
- C/C++中的函数参数传递机制
- C++中的函数模板
- 为什么c++程序调用c编译器编译的函数需要在调用前加上extern“C”
- 成员函数指针与高性能的C++委托(下篇)
- 混沌 In C++::是类型?还是函数调用?
- C++模板的定制五:对定制成员函数的补充
- C++中的文件输入/输出(6):一些有用的函数
- 成员函数指针与高性能的C++委托(中篇)
- 深入C++之函数模板