问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

类的设计,构造函数和析构函数 c/c++

发布网友 发布时间:2023-06-22 12:29

我来回答

2个回答

热心网友 时间:2024-11-13 21:26

类是编程人员表达自定义数据类型的C++机制。它和C语言中的结构类似,C++类

支持数据抽象和面向对象的程序设计,从某种意义上说,也就是数据类型的设

计和实现。

一、类的设计
1.类的声明

class 类名
{
private: //私有
...
public: //公有
...
};

2.类的成员
一般在C++类中,所有定义的变量和函数都是类的成员。如果是变量,我们就叫

它数据成员如果是函数,我们就叫它成员函数。
3.类成员的可见性
private和public访问控制符决定了成员的可见性。由一个访问控制符设定的可

访问状态将一直持续到下一个访问控制符出现,或者类声明的结束。私有成员

仅能被同一个类中的成员函数访问,公有成员既可以被同一类中的成员函数访

问,也可以被其他已经实例化的类中函数访问。当然,这也有例外的情况,这

是以后要讨论的友元函数。
类中默认的数据类型是private,结构中的默认类型是public。一般情况下,变

量都作为私有成员出现,函数都作为公有成员出现。
类中还有一种访问控制符protected,叫保护成员,以后再说明。
4.初始化
在声明一个类的对象时,可以用圆括号()包含一个初始化表。

看下面一个例子:

#include iostream.h

class Box
{
private:
int height,width,depth; //3个私有数据成员
public:
Box(int,int,int);
~Box();
int volume(); //成员函数
};

Box::Box(int ht,int wd,int dp)
{
height=ht;
width=wd;
depth=dp;
}

Box::~Box()
{
//nothing
}

int Box::volume()
{
return height*width*depth;
}

int main()
{
Box thisbox(3,4,5); //声明一个类对象并初始化
cout< return 0;
}

当一个类中没有private成员和protected成员时,也没有虚函数,并且不是从

其他类中派生出来的,可以用{}来初始化。(以后再讲解)
5.内联函数
内联函数和普通函数的区别是:内联函数是在编译过程中展开的。通常内联函

数必须简短。定义类的内联函数有两种方法:一种和C语言一样,在定义函数时

使用关键字inline。如:

inline int Box::volume()
{
return height*width*depth;
}

还有一种方法就是直接在类声明的内部定义函数体,而不是仅仅给出一个函数

原型。我们把上面的函数简化一下:

#include iostream.h

class Box
{
private:
int height,width,depth;
public:
Box(int ht,int wd,int dp)
{
height=ht;
width=wd;
depth=dp;
}
~Box();
int volume()
{
return height*width*depth;
}
};

int main()
{
Box thisbox(3,4,5); //声明一个类对象并初始化
cout< return 0;
}

这样,两个函数都默认为内联函数了。

热心网友 时间:2024-11-13 21:27

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

using namespace std;
class student
{
public:
char *lpszBuff;
student();
~student();
};

student::student()
{
lpszBuff = (char *)malloc(sizeof(char)*128);
}
student::~student()
{
free(lpszBuff);
}
int main()
{
student a;

memcpy(a.lpszBuff, "Hello World!", 12);
printf("%s\n", a.lpszBuff);
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 给宝宝用的奶瓶,应该提前烫一下吗? ...处理之后才能给宝宝冲奶呢?用开水烫还是用沸水煮 奶瓶是用开水烫还是用开水煮 电路图中下面两个什么意思 +24VDC +24VDC COM 亲戚带的金骏眉,让我尝尝,我对茶也不懂,问问百度大虾, 红色铁罐,上面写... 黑豆怎么吃能去肝火 吃煮红枣黑豆时能吃去火的药么 阴虚火旺能吃黑豆吗? 清明茶好还是谷雨茶好 白羊座的星座运势如何 常州回贵州铜仁车找人去哪里 58同城车找人发布一般提前多久发布? 人爬绳子和爬钢管,爬相同的高度,两者摩擦力一样大吗?(同一个人) 求视频里爬绳子那段的背景音乐!! 哪部动画片里有爬绳子的动作 张雨绮的尺度有多大?白鹿原中的大尺度镜头 北方农村有一种果子里面是红色的肉叫什么名字 苹果相机照相为什么是反的 世界上最贵最大的苹果世界第一苹果是3公斤800元 日本青森王林上市时间 什么时间喝茶为宜,茶泡几次为宜? 树上结一串串红色的果子树是什么树 这是什么树,结红果,不是槟榔。 占为己有的英文 霸占为己有是什么意思 黑豆到底泡多久才能软 四个红果沾子的热量能有多少 东山大叶细蒂杨梅口感+重量+成熟期 有人考过早稻田大学的校内考么。数学难到什么程度? 过油肉是哪里的菜 北京西站去香河的公交938 几点有?谢谢?? 北京西有到廊坊大学城的938公交车吗 我从北京西站下车 怎么倒车到 938 站呢?? 没有办银行卡.只有账号.支付宝可以转过去吗? 乌梅与杨梅的区别是什么? 杨梅和乌梅一样吗?杨梅和乌梅的区别 乌梅和杨梅有什么不同,价格上有差别么? 赤兔田涛是几几年 举重田涛为什么失败率这么高? 举重田涛和陆勇是不是同一级别