- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C实用教程笔记
文件重复包含处理:
方法一:
#ifndef A_H
#define A_H
int a;
#endif
方法二:
#pragma once (绝大多数编译器支持)
访问权限的问题
1,类外只能访问public
2,在类内对象不受访问权限的限制
构造函数与析构函数
1,结构体中的初始化因为成员变量都是public所以可以直接初始化
Person one ={ qqqq,23,45};
2,在类中这样如果成员是public也是可以的,但是这样却降低了类的封装性。
3,构造函数
1)默认构造函数(可以带参数)
I)初始化一般要用对象成员初始化列表
2)带参数的构造函数
3)默认拷贝构造函数
I)默认拷贝构造函数编译器会自动生成但是很多时候是不够用的(浅拷贝)
II)自己要重载默认拷贝函数
4)默认拷贝函数的调用情况(两种情况都会构造临时的对象)
I)对象作为函数的参数
II)对象作为函数的返回值
III)初始化新对象的时候
4,构造的顺序
首先构造类成员变量,然后是构造自己。
析构的顺序正好相反。、
const对象
Const 对象必须初始化,而且之后不能被更改。
数据共享与成员特性
1,静态成员
1)静态数据成员
I)静态数据成员定义:
在类内声明:static int nnum;
在类外定义与分配空间:int 类名::nnum = 0;
II)静态成员的引用
可以通过对象引用
可以同过类名直接引用
2)静态成员函数
I)静态成员函数的定义:
在类用定义 static void ChangeData()
II)静态静态成员函数的引用: 可以通过对象引用
可以同过类名直接引用
III)静态成员函数的注意点:
静态成员函数只可以访问静态成员
注意类中的静态成员与普通静态变量和静态函数的区别。
友元
1,友元函数
I)友元外部函数
Friend Cpoint inflate(Cpointpt,int a)
类外定义不要加类作用域
II) 友元成员函数
这个函数是另外一个类的成员函数
Friend Cpoint Cpoint::inflate(Cpointpt,int a)
一定要加上它属于哪一个类
2,友元类
Friend class A;
友元类中的每一个函数都是类的友元成员函数
3,注意点
友元只能通过类的对象可以直接访问类的私有成员
友元不是该类的成员
类成员的其他特性
1,const 成员
I)const数据成员
初始化后不能改变
II)const 成员函数
A)在参数列表后面加上const关键字
B)不能修改任何数据成员
C)不能调用非const成员函数(非const成员函数会修改数据成员)
D)只有常成员函数在有资格被常对象调用
E)const 关键字可以区分重载函数
Void print();
Void print()const;
是合法的重载。
2,mutable成员
当数据成员用mutab关键字修饰后,那数据成员就可以在const函数中被修改
3,explicit 成员
用explicit关键字修饰类的构造函数可以强制调用显示的构造函数。
4,this指针
I)this指针在static成员函数中指向不明确,所以不能在其中使用
II)this指针在const函数中的类型是const类型,所以
文档评论(0)