c++学习日记 DAY1

、类、封装

重载:函数名相同,参数的个数或类型或顺序不同、

内联函数:inline,编译时直接将语句替换为代码,省了调用过程。

类是由数据成员和成员函数组成的。

成员函数:构造函数,析构函数,拷贝函数。这三类函数如果没有定义在需要用到时系统会自动定义。

构造函数:1.可以分为无参构造函数和有参构造函数,无参和有参但参数都设定有默认值的称为默认构造函数。

                    2.初始化列表,stu::stu(int x):m_ix(x);只能用于构造函数,先于构造函数执行,可以初始化const成员。

析构函数:~stu,无参数,对象销毁时自动调用,一般用于释放在构造函数中在堆里申请的内存。

拷贝函数:stu(const stu &s),一般使用复制初始化时系统自动调用,分为深拷贝,浅拷贝。浅拷贝是将地址和值一起拷贝过去,大部分情况下可用,但是如果数据成员是指针/数组时地址也会拷贝过去,这样的话两个实例化的对象的指针会指向同一地址。这时需要用深拷贝,深拷贝申请一个新的内存地址再将数据拷贝过去。

数据成员:可以有变量、数组、指针和另一个对象等。当以对象做成员时,构造函数无参数,对象成员的构造函数先调用,销毁时先调用对象自己的析构函数再调用对象成员的析构函数。

对象指针成员:p->m_ix,(*p).m_ix都可以,sizeof类的大小等于数据成员大小相加。

string类,存储字符串。很多用法···,string s,s.empty(),s.size(),s1 = s2,s1+s2:连成新串,返回新串。,s[n],返回n位置的字符。string s(s1),string s(n,'c')n个c。

错题集:

1.class类型重定义 ,顾名思义就是重复定义了。

比如你定义了一个类 class A 然后你在后面写代码的时候,又定义了一个相同名字的类class A 那么编译的时候就会出现这样

的错误提示。出现这样的问题,有可能是头文件加载加载引起。解决方法,可以通过

在头文件最上方写:

  #ifndef XXXXXXX

  #define XXXXXXX

  文件最后

  #endif

另外顺便说一下在代码里面存在的#pragma once 这行代码的意思。

#pragma once 表示使用它的文件仅被编译一次,如果myhead .h 中出现了pragma once ,那么myhead.h仅被编译一次。

2、注意类外定义时加::,调用函数时加(),

3、ctrl+K+C:可以注释掉选中的代码。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值