Effective C++ 读书笔记 条款09:绝不在构造和析构过程中调用virtual函数
来源:互联网 发布:360修复网络失败 编辑:程序博客网 时间:2024/04/29 19:00
Core List
1. 构造和析构函数中调用 virtual 函数的问题
结论:构造和析构函数中调用 virtual 函数,则将必然调用基类的 virtual 函数,而非派生类的 virtual 函数,因为派生类的部分变量尚未定义(已经释放)
2. derived class 上传必要构造信息至 base class 的构造函数实例
class Transaction {
public:
explicit Transaction (const string& logInfo);
void log(const string& logInfo) const; // 非虚函数
};
Transaction::Transaction(const string& logInfo) {
log(logInfo);
}
class BuyTransaction::public Transaction {
public:
BuyTransaction (parameters) : Transaction (createLogString(parameters)) {}
private:
static string createLogString(parameters);
};
注:static 函数可以使用类的 static 成员, 但不可以直接使用类的非 static 成员。(确保了createLogString 使用的全部为 static 成员,即无尚未初始化的成员)
0 0
- 读书笔记《Effective C++》条款09:绝不在构造和析构过程中调用virtual函数
- Effective C++ 读书笔记 条款09:绝不在构造和析构过程中调用virtual函数
- Effective C++:条款09:绝不在构造和析构过程中调用virtual函数
- 【Effective c++】条款09:绝不再构造和析构过程中调用virtual函数
- effective C++ 09_绝不在构造和析构过程中调用virtual函数 读书笔记
- effective c++条款9(绝不在构造和析构过程中调用virtual函数)
- Effective C++ 条款9:绝不在构造和析构过程中调用virtual函数
- 《Effect C++》学习------条款09:绝不在构造和析构过程中调用virtual函数
- Effective C++——》条款9:绝不在构造和析构过程中调用virtual函数
- Effective c++学习笔记——条款09:绝不在构造和析构过程中调用virtual函数
- Effective c++学习笔记——条款09:绝不在构造和析构过程中调用virtual函数
- 条款09:绝不在构造和析构过程中调用virtual函数
- 条款09:绝不在构造和析构过程中调用virtual函数
- 条款09:绝不在构造和析构过程中调用virtual函数
- 条款09 绝不在构造和析构过程中调用virtual函数
- 条款09:绝不在构造和析构过程中调用virtual函数
- 条款09 绝不在构造和析构过程中调用 virtual 函数
- 条款09:绝不在析构和构造过程中调用virtual函数
- 后缀数组学习笔记
- 【叶节点记忆式/深搜式DFS_路径搜索问题】滑动解锁
- 重载和重写
- 海量数据处理之--哈希分治
- 1160 蛇形矩阵(模拟)
- Effective C++ 读书笔记 条款09:绝不在构造和析构过程中调用virtual函数
- R语言在做为数据分析工具的优点
- JavaScript把16进制数组转换为字符串数组
- PAT 1009. Product of Polynomials (25)
- DB_NAME、DB_UNIQUE_NAME、SERVICE_NAME和INSTANCE_NAME等的区别
- final
- 马恩驰:R向量化运算
- 2-lan8720a的kernel驱动
- ubuntu apt-get update失败