1、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
2、不要用return语句返回指向“栈内存”得指针,因为该内存在函数结束时自动
消亡。
3、C语言得malloc/free和C++的new/delete,前者时库函数,后者则不是。前者
在调用时不会执行构造函数和析构函数,而后者则会有相应得构造和析构函数,
所以后者用得更加安全。
4、函数得缺省值只能在函数得声明时被从后向前挨个儿缺省。
void Foo(int x,int y=0,int z=0);//正确得缺省
void Foo(int x=0,int y,int z=0);//错误得缺省
5、如果运算符被重载为全局函数,那么只有一个参数得运算符叫做一元运算符,
有两个参数得运算符叫做二元运算符。
如果运算符被重载为类的成员函数,那么一元运算符没有参数,二元运算符只
有一个右侧参数,因为对象自己成了左侧参数。
6、c语言与C++
(1)C++支持函数重载而c语言则不支持
(2)C++参数传递有:值传递、指针传递、引用传递
C参数传递有:值传递、指针传递
(3)c++对函数曾加了重载(overloaded)、内联(inline)、const和virtual
7、每个类只有一个构造函数和一个赋值函数,但可以有多个构造函数。
2、不要用return语句返回指向“栈内存”得指针,因为该内存在函数结束时自动
消亡。
3、C语言得malloc/free和C++的new/delete,前者时库函数,后者则不是。前者
在调用时不会执行构造函数和析构函数,而后者则会有相应得构造和析构函数,
所以后者用得更加安全。
4、函数得缺省值只能在函数得声明时被从后向前挨个儿缺省。
void Foo(int x,int y=0,int z=0);//正确得缺省
void Foo(int x=0,int y,int z=0);//错误得缺省
5、如果运算符被重载为全局函数,那么只有一个参数得运算符叫做一元运算符,
有两个参数得运算符叫做二元运算符。
如果运算符被重载为类的成员函数,那么一元运算符没有参数,二元运算符只
有一个右侧参数,因为对象自己成了左侧参数。
6、c语言与C++
(1)C++支持函数重载而c语言则不支持
(2)C++参数传递有:值传递、指针传递、引用传递
C参数传递有:值传递、指针传递
(3)c++对函数曾加了重载(overloaded)、内联(inline)、const和virtual
7、每个类只有一个构造函数和一个赋值函数,但可以有多个构造函数。