埃尔法哥哥C++语言类的详解和示例( 二 )
析构函数具备以下特点:
1)构造函数必须是 public 属性的 。
2)构造函数没有返回值 , 因为没有变量来接收返回值 , 即使有也毫无用处 , 不管是声明还是定义 , 函数名前面都不能出现返回值类型 , 即使是 void 也不允许 。
析构函数不允许重载的 。 一个类只能有一个析构函数 。
C++程序也很优雅
很多人说C++程序很烦琐 , python程序很优雅 , 说这话人的很荒谬 , 那是因为他C++的功力不够 。
示例(book210.cpp)
类的其它知识
关于类的其它知识 , 包括this指针、static静态成员、友元等内容 , 我不介绍了 , 大家可以找资料看看 , 也可以不看 , 意义不大 , 时间太宝贵 , 有太多重要的知识要学习 , 没必要把时间浪费在这些不痛不痒又没什么用的知识点上 , 以后有时间了再看也行 。
可变参数
我们已经介绍过printf、fprintf、sprintf、snprintf函数 , 它们是一组功能相似的函数 , 并且有一个共同点 , 就是函数的参数列表是可变的 。
函数的声明如下:
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);
在实际开发中 , 我们的自定义函数也需要可变参数 , 实现类似上述函数的功能 , 例如CFile类的Fprintf成员函数 , 函数的声明和定义如下:
va_list指针、va_start宏、va_end宏难以理解 , 大家会抄就行 , 我不详细介绍 , vfprintf函数把宏分析的结果输出到文件 , 还有一系列功能相似的函数 , 声明如下:
// 输出的屏幕
int vprintf(const char *format, va_list ap);
// 输出到文件
int vfprintf(FILE *stream, const char *format, va_list ap);
// 输出到字符串
int vsprintf(char *str, const char *format, va_list ap);
// 输出到字符串 , 第二个参数指定了输出结果的长度 , 类似snprintf函数 。
int vsnprintf(char *str, size_t size, const char *format, va_list ap);
【埃尔法哥哥C++语言类的详解和示例】可变参数的知识不只这些 , 但是 , 在实际开发中 , 我只见过用于格式化输出 , 其它的应用场景我没有见过 。
- 埃尔法哥哥万物互联的5G时代,将会给我们的生活带来哪些变化?
- 埃尔法哥哥我学python的一点感受
- 埃尔法哥哥使用哪种编程语言的开发人员最幸福?
- 埃尔法哥哥vue移动端开发时,客户端如何判断当前设备是Android还是IOS
- 埃尔法哥哥还可以做扫地机器人啊,自动驾驶不做了
- 埃尔法哥哥短期内难以找到替代华为海思的客户,寒武纪交出上交所答卷
- 埃尔法哥哥人工智能与人类的未来
- 爱搞事的瑞哥哥5G最具性价比手机,华为再次发力!荣耀X10成为标杆
- 牛牛侃天下嫂子卖掉嫁妆养他,结果养出位超级富豪,父亲去世后哥哥辍学打工
- 埃尔法哥哥Arvind Krishna全球首秀,IBM新CEO