随笔 - 147  文章 - 5  评论 - 6  阅读 - 81298

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关键字,否则错误。

  

posted on   紫金树下  阅读(171)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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工具
< 2012年4月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

点击右上角即可分享
微信分享提示