- new失败不会返回空指针,只会抛出异常,唯一可以使其返回空指针的方法是在new后面加上(std::nothrow),例如:
int* p = new (std::nothrow) int; - noexcept声明只是告诉编译器这个函数不会抛出异常,无需对其做异常方面的处理,从而提升效率,但实际是否抛出异常,由开发者自己决定,如果声明了noexcept,结果却抛出了异常,编译器将对其不做处理,程序将直接退出
- 类成员的const类型的引用变量只能在类的初始化列表内进行初始化,static成员变量只能在类外进行初始化,而static const的类型的成员变量则可以在类内进行初始化
- 不可以对类成员函数同时使用static及const(前缀修饰)进行修饰,因为C++编译器在实现const函数时,为了确保该函数不会修改对象的成员,会传入一个隐式的参数:const this *,但static函数是没有this指针的,也就是说static与const是冲突的。
- 哪些函数不能成为虚函数:(1)全局普通函数 (2)友元函数 (3)构造函数 (4)内联成员函数 (5)静态成员函数
- 虚函数不可以是内联的,因为内联函数是在编译时决定的,但是虚函数时运行时决定的,即使强行在虚函数前加上inline关键字,但仍然会被忽略
- 函数加上const修饰和不加const修饰,其实是两个函数,所以在父类中某虚函数加上const,但是同名同参的子类成员函数没有加上const,不会被重写
- 字符串的前缀u、U、L、R分别代表char16_t、char32_t、wchar_t以及原始字符串
- 对一个空指针进行delete或free操作将什么也不做,是安全的
- 类成员函数的右边放一个&代表左值引用函数,说明这个接口只能被左值调用,但是不能被右值使用。成员函数的右边放&&代表右值引用函数,说明这个接口只能被右值调用。
class Test {
public:
// 左值引用限定成员函数 - 只能在左值对象上调用
void func1() & {}
// 右值引用限定成员函数 - 只能在右值对象上调用
void func2() && {}
};
本文介绍了C++编程的一些关键概念,如内联函数、对象数组初始化、枚举、派生类与基类之间的操作、整型提升、异常处理、const成员函数、引用类型、虚函数、函数模板、函数重载以及成员函数引用类型等。通过实例展示了如何使用这些特性,并强调了在编程实践中应注意的事项。
725

被折叠的 条评论
为什么被折叠?



