C++类的定义之作用域
来源:互联网 发布:刘德华唱功知乎 编辑:程序博客网 时间:2024/06/06 07:05
(继上一篇)
每个类都定义了自己的新作用域和唯一的类型。在类的定义体内声明内成员,将成员名引入类的作用域。两个不同的类具有两个不同的类作用域。
例如:
Class First {
int memi;
double memd;
};
Class Second {
int memi;
double memd;
};
First obj1;
Second obj2=obj1;//error:obj1and obj2 have different types
上例说明 即使两个类具有完全相同的成员列表,它们也是不同的类型。每个类的成员不同于任何其他类(任何其他作用域)的成员。在类作用域之外,成员只能通过对象或指针分别使用成员访问操作符"."或"->"来访问。如
Class obj;
Class *ptr = &obj;
ptr->member; ptr->memfcn();
obj.member; obj.memfcn();
另外也能用作用域操作符来访问 如
Double Sales_item::avg_price() const
{
if(units_sold)
return revenue/units_sold;
else
return 0;
}
在上述例子中,我们用完全限定名Sales_item::avg_price来指定这是类Sales_item作用域中的avg_price成员的定义。(一旦看到完全限定名,就知道该定义是在类作用域中)因为是在类作用域中 所一调用 revenue和units_sold不需要写成 this->revenue或this->units_sold。同时 定义于类外部的成员函数中,形参表和成员函数体都出现在成员名之后,这些都是在类作用域中定义,所以可以不用限定而引用其他成员。
与形参类型相比,返回类型定义在成员名字前面。如果函数在类定义体外定义,那么用于返回类型的名字在类作用域之外。如果返回类型使用由类定义的类型,则必须使用完全限定名。如
Class Screen{
Public:
Typedef std::string::size_type index;
Index get_cursor() const;
};
inline Screen::index Screen::get_cursor() const
{
return cursor;
}
该函数返回类型是index,这是在Screen类内部定义的一个类型名。
- C++类的定义之作用域
- 【c#】类的定义---各关键字的作用
- C中宏定义的各种作用
- 黑马程序员_object c学习日记①_类的声明定义、点语法及成员变量作用域
- 【C/C++】类的作用域
- 【C++】变量(五) 变量名的作用域以及变量定义的一些习惯
- C/C++主函数的定义(return的作用)!
- C/C++主函数的定义(return的作用)
- C/C++主函数的定义(return的作用)!
- C语言中使用空的宏定义的作用
- C语言宏定义中的#,##,#@及\符号的作用
- c语言宏定义中的#,##,#@及\符号的作用
- c中宏定义中#号的作用
- C语言宏定义中的#,##,#@及\符号的作用
- C语言宏定义中的#,##,#@及\符号的作用
- C语言宏定义中的#,##,#@及\符号的作用
- C语言宏定义中#和##的作用
- C语言中用户定义类型(typedef)的作用
- asp.net mvc架构选型的几点思考
- 如何在25分钟内提高工作效率?
- 忽略库
- androidxml文件解析
- 一个计算机爱好者的不完整回忆(四)
- C++类的定义之作用域
- 2012百度之星E题
- 上传组件 uploadify 导致在firefox下 session 不一致问题 ie正常
- OpenID和OAuth的区别
- Linux设备驱动的编写与安装过程
- android 2.3 4.0 添加开机音乐
- uboot启动参数设置和内核引导方法总结
- HTTP/FTP客户端开发库:libwww、libcurl、libfetch 以及更多
- WPF详解2.0-WPF布局面板