现在的位置: 首页 > 综合 > 正文

C++基本特性(转)

2013年09月11日 ⁄ 综合 ⁄ 共 996字 ⁄ 字号 评论关闭
 

1.通常来说结构体和类可以通用!(结构体可以说是一个特殊的类)

与类的区别:
在结构体默认所有成员都是public!类默认为private!

在结构体内允许有函数!

struct Ponit
{
int x;
int y;
void output()
{
cout<<x <<endl<<y<<endl;
}
};

2.protect对于外部函数不能被访问!但protect是相对与父类与子类的。

3构造函数与析构函数(一对)

为了保证产生对象初始化。保证唯一性,为类名,而且没有返回值!所以定义对象时候就会自动调用构造函数!

如果不定义构造函数系统会自动生成一默认的构造函数!可以带参数

析构函数为构造函数的去反.对象销毁时候就会调用析构函数!不能带参数!一个类只能有1个析构函数!

同时出现两个函数(包括构造函数),参数类型,个数不同发生函数的重载!

例子: 下面可以发生重载吗?

第一种情况:(1)void output();
                        (2)int output();

不能:因为只有返回值不同的,不能构成!
第二种情况:(1)void output(int a,int b=5); b有缺省值!
                 (2)void output(int a);

不能: 有缺省值,调用时候pt.output(5),因为她有缺省值!与第2个一样。

4.this指针!

this指针是隐含指针,每产生一个对象都有一个隐含的this指针!this指针就是指向对象本身!

每个this指针根据 (如this=&pt.this=&pt2...........)她自动获取对象的地址!

如x=0,this->x=0;所以可以分析容易混淆的变量名字.如:

#include <iostream.h>
class Ponit
{
public:
      int x;
      int y;
   Ponit() //构造函数
   {
   x=0;
   y=0;
   }
   Ponit(int a,int b)
   {
   x=a;
   y=b;
   }
      void output()
   {
      cout<<x <<endl<<y<<endl;
   }
   void output(int x,int y)
   {
   this->x=x;
   this->y=y;
   }
};
void main()
{
   Ponit pt(3,3);
   pt.output(5,5);
   pt.output ();
}

抱歉!评论已关闭.