C++学习笔记——面向对象高级开发
文章目录
- C++学习笔记——面向对象高级开发
-
- P2 转换函数 conversion function
- P3 non-explicit-one-argument constructor
- P4 pointer-like classes,行为像指针的类
- P5 function-like classes,行为像函数,仿函数
- P6 namespace经验谈
- P7 class template,类模板
- P8 function template,函数模板
- P9 member template,成员模板
- P10 specialization,特化
- P11 partial specialization模板偏特化
- P12 template template parameter,模板模板参数
- P13 关于C++标准库
- P14 三个主题
- P15 引用
- P16 复合&继承关系下的构造和析构
- P17关于vptr和vtbl,虚指针、虚表
- P18 关于this
- P19 对象模型:关于动态绑定
- P20 关于 new,delete
- P21 重载new,delete
- P22 示例
- P23重载new(),delete()示例
- P24 basic_string试用new(extra)扩充申请量
P2 转换函数 conversion function
class Fraction{
public:
operator double() const{
return (double)(m_numerator/m_denominator);
}
private:
int m_numerator;
int m_denominator;
};
Fraction f(3,5);
double d = 4+f;
P3 non-explicit-one-argument constructor
class Fraction{
public:
Fraction(int num,int den=1):m_numerator(num),m_denomiator(den){
}
operator double() const;
explicit Fraction(int num,int den=1):m_numerator(num),m_denomiator(den){
}
Fraction operator+(const Fraction& f){
return ...;