C++类相关(1)
来源:互联网 发布:手机录像播放软件 编辑:程序博客网 时间:2024/05/16 09:36
一、内联函数
1、定义位于类声明中的函数自动成为内联函数。
2、类声明外定义
class Stock{private: void set();public:};inline void set(){ //a=b*c;}
二、构造函数
1、构造函数被用来创建对象,而不能通过对象来调用。
2、没有定义任何构造函数时,编译器提供默认的构造函数;为类定义了构造函数后,必须为它提供默认构造函数。
三、作用域为类的常量
class Bakery{private: const int Months = 12; double costs[Months]; //erro ...
声明类只是描述了对象的形式,并没有创建对象。因此,在创建对象前,将没有用于存储值的空间。每个对象都会生成一个Months。
想实现目标,有两种方法。
1、使用枚举
class Bakery{private: enum {Months = 12}; double costs[Months]; //erro ...
声明枚举并不会创建类数据成员。也就是说,所有对象都不包含枚举。另外,Months只是一个符号名称,在作用域为整个类的代码中遇到它时,编译器将用12替换它。
2、使用static
class Bakery{private: static const int Months = 12; double costs[Months]; //erro ...
创建一个名为Months的常量,该常量与其他静态变量存储在一起。
3、作用域内枚举
enum egg{small,Medium,Large};enum t_shirt{Small,Medium,Large}; //erro
如上,枚举量发生冲突,无法编译通过。避免该问题方法:
enum class egg{small,Medium,Large};enum struct t_shirt{Small,Medium,Large};//struct与class可相互代替egg choice = egg::Large;t_shirt Floyd = t_shirt::Large;
常规枚举将自动转换为整型,但作用域内枚举不能隐式地转换为整型。在必要时可进行显式类型转换: int Frodo = int(t_shirt::small); //Frodo set to 0
枚举用底层整型类型表示,在C++98中,如何选择取决于实现,因此包含枚举的结构的长度可能随系统而异。对于作用域内枚举,C++消除了这种依赖。默认为int。可用如下语句做出不同的选择: enum class : short pizza{small, medium, large};
底层类型必须为整型。
四、类型转换
1、其它类型转换为类类型
只有接受一个参数的构造函数才能作为转换函数。
使用关键字explicit关闭自动类型转换的特性。
Stonewt(int stn, double lbs=0); //int-to-Stonewt conversionexplicit Stonewt(double lbs); //不能隐式转换
2、类类型转换为其他类型
class Stonewt{ ... operator int() const;}Stonewt::operator int() const{ return int(pounds+0.5);}
函数无返回类型、没有参数,但必须返回转换后的值。
五、静态类成员与静态函数
class String{ ... static int num; //不能在此初始化}int String::static num = 0; //初始化。如被使用,必须初始化
静态函数只能使用静态成员变量,如需使用非静态成员变量,需传入对象,通过对象来调用。
六、其他
1、C++11列表初始化 Stock hot_tip={"Derivatives", 100, 45.0};
与如下构造函数匹配: Stock::Stock(const std::string & co, long n=0, double pr=0.0);
2、const成员函数
声明: void show() const;
定义: void stock::show() const{}
保证函数不会修改调用对象
- C/C++ 相关笔试题(1)
- C/C++相关问题整理(1)
- 【c语言】*(p-1) {指针相关}
- C#:类及其相关
- Object-c 文件系统相关类
- c c++ 面试相关 1
- int86相关(Borland C++)
- 【C 相关】
- C 相关
- [C#]Log记录相关对应类
- objective-C之NSDate相关类(二)
- objective-C之NSDate相关类(一)
- objective-C之NSDate相关类(三)
- objective-C之NSDate相关类(四)
- C/C++ 学习笔记:类相关
- C++——类相关知识
- C学习之------内存相关操作(1)
- C/C++ 语法相关(持续更新)
- ros 下基本编程 hellp world
- 【动态规划】 换钱方法
- 半年总结--菜鸟成长记
- PyCharm激活码2017
- CPU的内部架构和工作原理
- C++类相关(1)
- C. Dishonest Sellers
- Android Studio下获得SHA1和MD5
- Android的Activity的小知识点
- Leetcode #461 Hamming Distance
- C~K的魔法石
- Codeforces 550D
- android6.0刷新新特性SwipeRefreshLayout
- GNU编译器 gcc