类
c++ primer第12章类的一些知识点总结
1:关于inline函数
在类定义体内部定义的成员函数即为inline函数,假如说我们想定义一个成员函数为inline类型,那么可以这样做。声明为inline类型,并且函数的实现和类的定义放在一个文件中(提倡这样做),并且定义时也要指明是inline类型的。
//Example.h
class A{
void x(){……} //这是inline函数
inline void y(); //声明为inline类型的函数
};
inline void A:;x(){ ……} //在定义时仍然要指定是inlien类型的,并且提倡和类定义体放在一个文件中
2.关于类声明和类定义
在使用类之前必须要有类声明(最少的)。如果只有类声明而没有类定义,那么它是一个不完全类型
class X;//类声明
class X{……}; //类定义
不完全类型的使用是受限制的。 不能定义该类型的对象,只能定义该类型的指针或者引用,或者是定义(注意,不是声明)一个函数,这个函数的形参或者返回类型可以使不完全类型。。
3.const成员和const重载
类的非static成员函数默认是有this指针的,加入成员函数是const型,那么它的是真默认是const类型的,
class A{
void test() const {……}
};
则在test函数中this指针的形式应该是 const A* thsi=&对象,所以不能再const成员函数中去改变对象的数据成员.
基于const的函数重载有两种形式: 1: 基于成员函数是否为const,可以重载为一个成员函数 2:基于指针形参是否只想const可以重载一个函数
void f(int*);
void f(const int*);//这两个是重载函数
4.类作用域中名字查找
class A{
In x;
typedef int In; //这是错误的
};
5.隐式类型转换
构造函数的隐式类型转换可以通过explicit关键字终止
6.static成员
static成员的定义时在类定义外部,和类的成员函数同级别。也可以把它看做是类的成员函数的定义,因此它可以使用类的private成员
const static成员可以在类的定义体中指明它的值,但是只限于是常量表达式!!
static变量在类的定义体外部初始化的时候不需指明static关键字,否则错误。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具