制作好网站怎么导入,住房建设部官方网站专家注册,校园网站建设指导思想,王也道长冷酷头像头文件和类的声明 inline
inline修饰函数#xff0c;是给编译器的一个建议#xff0c;到底是否为inline由编译器来决定#xff0c;inline修饰的函数在使用时是做简单的替换#xff0c;这样就避免了一些函数栈空间的使用#xff0c;从能提升效率。从另一种角度看#xff…头文件和类的声明 inline
inline修饰函数是给编译器的一个建议到底是否为inline由编译器来决定inline修饰的函数在使用时是做简单的替换这样就避免了一些函数栈空间的使用从能提升效率。从另一种角度看是替代宏的一种方法。
函数若在class body 内定义完成则自动成为 inline 的候选人 构造函数放在 private 区
#include stdio.h
#includestdlib.hclass A {
public: static A getInstance();private:A();A(const A rhs);
};A A::getInstance()
{static A a;return a;
} A::getInstance(); 比如像单例模式不想让别人随意创建对象
const
const函数表示函数不会改变成员变量内容不改变成员变量的函数一定要加。如果声明一个const的类对象表明这个类对象里面的值不能修改但是类成员函数没有声明成cosnt这样就会报错。 COWcopy on write写时复制在写的时候才进行复制没写的时候共享同一个字符串
charT
operator[] (size_type pos) const {
//不必考虑写时复制的问题效率高string[1]
}reference
operator[] (size_type pos){
//要考虑写时复制的问题string[1] t
}当成员函数的const版本和non-const版本同时存在的时候const 对象只能调用const版本non-const对象只能调用non-const版本
值传递和引用传递
尽量不要值传递建议使用引用传递。引用传递底部是一个指针一个指针四个字节。如果不希望函数修改引用的值可以加const加以限制。函数返回值也尽量使用引用。 引用传参传递者无需知道接收者以什么引用形式接收。
友元
一个类想要拿到另一个类的私有成员变量那么就需要在另一个类中把这个类声明为友元。但是同一个类之间的不同实例能够取到彼此之间的私有成员变量因为相同class的各个对象互为友元。
数据放在private中参数传递使用引用返回值使用引用const应加尽加 操作符重载 写成成员函数 所有的非static成员函数都包含一个隐含的 this 指针返回的是类引用
非成员函数 不能返回类引用因为非成员函数操作符重载一定会在函数方法内新建一个类对象来接收操作结果如果返回引用这个新对象在出了函数体之后生命周期就结束了引用就是失效了。所以只能返回值。 参考文章侯捷C八部曲笔记一、面向对象_Wanncye的博客-CSDN博客