Java的面向对象有三大特征:封装、继承、多态。这里主要对封装进行讲解。封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数。Java的封装主要通过访问权限控制符:private,默认,protected,public来实现。(这四个权限访问控制符的区别网上有很多,建议读者自行...
分类:
编程语言 时间:
2014-08-02 20:43:04
阅读次数:
265
箭头操作符(->)的通常用法是,使用一个类对象的指针来调用该指针所指对象的成员。左操作数为对象指针,右操作数为该对象的成员。定义重载箭头操作符之后看起来就有点特别,可以用类对象的指针来调用,也可以用类对象直接调用。重载箭头操作符,首先重载箭头操作符必须定义为类成员函数。箭头操作符可能看起来是二元操作...
分类:
编程语言 时间:
2014-08-02 17:56:23
阅读次数:
215
“通常情况下,你会在.h文件中声明函数和类,而将它们的定义放置在一个单独的.cpp文件中。但是在使用模板时,这种习惯性做法将变得不再有用,因为当实例化一个模板时,编译器必须看到模板确切的定义,而不仅仅是它的声明。因此,最好的办法就是将模板的声明和定义都放置在同一个.h文件中。这就是为什么所有的STL头文件都包含模板定义的原因。”[1]
"标准要求编译器在实例化模板时必须在上下文中可以查看到其...
分类:
其他好文 时间:
2014-08-02 12:50:43
阅读次数:
260
常函数即在类的成员函数参数列表后放置const的函数,常函数的作用是限制函数体对成员变量的修改,此外,常函数也不能调用非 常函数。 1 #include 2 using namespace std; 3 4 class Test 5 { 6 private: 7 int x, y; 8 ...
分类:
编程语言 时间:
2014-08-01 10:42:21
阅读次数:
187
C++编译错误cannot have cv-qualifier
在C++中CV指const和volatile两个关键字。有两种情况不能使用CV限定。
一、非成员函数不能含有CV限定,即const和volatile限定
#include
using namespace std;
double getArea() const
{
return ...
分类:
编程语言 时间:
2014-07-31 20:52:07
阅读次数:
227
在一个类中包含两种成员: 数据和函数,分别称为C++数据成员和成员函数。关于类: 类是C++新增加的重要数据类型,有了类,就就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。关于函数的重载在编程时,有时我们要实现的是同一类的功能,只是有些细节不同。例如希望从3个数中找出...
分类:
编程语言 时间:
2014-07-31 20:27:47
阅读次数:
276
点运算符(.):点运算符只能用于类类型的对象,其左侧运算对象必须是一个类类型的对象,右侧运算对象必须是该类型的一个成员名,运算结果为右侧运算对象指定的成员。调用运算符(()):当用点运算符访问一个成员函数时,通常我们是想调用该函数,我们使用调用运算符来调用一个函数,调用运算符是一对圆括号,里面放置实...
分类:
其他好文 时间:
2014-07-31 09:44:45
阅读次数:
164
重载限制多数C++运算符都可以用下面的方式重载。重载的运算符不必是成员函数,但必须至少有一个操作数是用户自定义的类型。下面详细介绍C++对用户定义的运算符重载的限制。1 重载后的运算符必须至少有一个操作数是用户自定义的类型,这将防止用户为标准类型重载运算符。因此,不能将减法运算符(-)重载为doub...
分类:
编程语言 时间:
2014-07-31 02:23:55
阅读次数:
336
我以前经常考虑使用WNDCLASS、CreateThread之类的Windows API时如何在类里面调用,传入函数参数地址时如何使用成员函数的地址。为了研究,写了一个示例代码:#include #include using namespace std;typedef int (__stdcal.....
分类:
其他好文 时间:
2014-07-30 05:34:53
阅读次数:
288
友元是一种定义在类外部的普通函数或类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。...
分类:
编程语言 时间:
2014-07-29 22:09:02
阅读次数:
293