c++笔记续

<center>c++笔记</center>

1.c++的变量初始化只有2种

  • 直接初始化:使用括号,int a(10);
  • 复制初始化:使用=,int a=10; (对象的复制构造函数)

2.cin与getline读字符串

  • cin读入字符串以空格为分割
  • getline(cin,line)读入字符串,以‘/n’为分割

3.函数指针

bool lencom(void);
typedef bool (*fun)(void);
fun pf1 = lencom;
fun pf1 = &lencom; //独立函数直接使用函数名和在前面加&是等效的。
成员函数必须使用&

4.默认构造函数

  • 默认构造函数的调用时机:在定义一个对象时,只要没有提供初始化式,就将调用默认构造函数。
  • 类的默认构造函数:一个类哪怕只定义了一个构造函数,编译器将不再自动生成默认构造函数
  • 自定义默认构造函数:无参构造函数是该类的默认构造函数。
  • 使用默认构造函数:

    Sales_item myobj(); #error 申明一个函数而不是定义对象;
    Sales_item myobj;#正确,调用默认构造函数
    Sales_item myobj=Sales_item();#正确,复制赋值

5.复制构造函数

  • 使用时机:当使用一个同类型的对象对新定义的对象进行初始化时,将显式的使用复制构造函数;当将该类型的对象传递给函数或从函数返回该类型的对象,将隐式使用复制构造函数;初始化顺序容器中的元素;根据元素初始化式列表初始化数组元素。例如:vector<string>svec(5)的过程为编译器首先使用string的默认构造函数创建一个临时值来初始化svec,然后使用复制构造函数将临时值复制到svec的每一个元素。
  • 默认复制构造函数:如果该类不存在复制构造函数,那么编译器总是会为该类合成一个复制构造函数。该合成的默认构造函数的行为是,执行逐个成员初始化,将新对象初始化为原对象的副本,即非static成员完全保持相同。
  • 禁止复制 使用private修饰复制构造函数可以禁止复制

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/183255.html

(0)
上一篇 2021年11月2日
下一篇 2021年11月2日

相关推荐

发表回复

登录后才能评论