加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

C++基本特性(转)

发布时间:2021-05-20 14:30:25 所属栏目:大数据 来源: https://blog.csdn.net/dragonf
导读:? 2008-09-19 19:53 1.通常来说结构体和类可以通用!(结构体可以说是一个特殊的类) 与类的区别: 在结构体默认所有成员都是public!类默认为private! 在结构体内允许有函数! struct Ponit { int x; int y; void output() { coutx endlyendl; } }; 2.protect对

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 ();
}

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

? 2008-09-19 19:53
    推荐文章
      热点阅读