c++初级 之 类的基本认识

来源:互联网 发布:网络大数据黑名单查询 编辑:程序博客网 时间:2024/06/06 07:48

以狗类为例认识类

Dog.h

/*Dog.h用来声明类*/#include<iostream>using namespace std;//一般.h文件只声明不定义,不需要这个头文件,但是这里为了举例类内定义成员函数,要用到该头文件的函数class Dog  //关键字和类名{public:    //暴露的成员和函数//数据成员(属性)char name[20];int age;//成员函数(方法)void speak()  //在类中定义成员函数{cout << name << ":wangwang" << endl;}void run();private:     //隐藏的成员和函数int weight; void eating();};/*dog不止这些属性和方法,但把其他细节封装隐藏起来,只露出用户关心的内容。但如果罗列出了所有内容,那么用户如何把关心内容暴露出来,其他内容隐藏起来呢?这就要用到 访问限定符public(公共的),protected(受保护的),private(私有的)。这就是封装*/

Dog.cpp

//在类外并且是分文件定义成员函数(才是正规办法;唯一例外,在vs编译环境中,类模板的成员函数不能分开到.h和.cpp两个文件里,应该都写到.h里,否则编译无法通过)#include"Dog.h"#include<iostream>using namespace std;void Dog::run()  {cout << name << " run" << endl;eating();//私有成员在类内可以使用}void Dog::eating(){cout << "eat" << endl;weight = 1;}

demo.cpp

#include<iostream>#include<stdlib.h>#include"Dog.h"  //""是自己编的文件。<>是系统的文件using namespace std;int main(){//从栈中实例化一个对象Dog d1;Dog d2[10];d1.age = 1;strcpy(d1.name,"acai");d1.run();d1.speak();//调用了这4个公有成员//从堆中实例化一个对象(new和delete)Dog *q = new Dog(); //在new一个类的对象时,若类里没有自己定义默认构造函数,那么加括号()对象的值会初始化为0,不加()不初始化。否则不管加不加()都会根据构造函数被初始化。Dog *p = new Dog[20];//记得考虑申请失败的情况!if (q == NULL){return 0;}if (p == NULL){return 0;}//赋初值q->age = 2;strcpy(q->name,"yellow");strcpy(p[0].name,"black");p[0].run();//释放内存delete q;delete []p;p = NULL;q = NULL;system("pause");return 0;}
结果如下:


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新买的绣球蔫了怎么办 绣球花被太阳晒阉了怎么办 羊肉香精放多了怎么办 被飞机防腐剂弄到皮肤怎么办 狗吃了脱氧保鲜剂呕吐怎么办 小孩误吃试纸了保鲜剂怎么办 狗狗把保鲜剂吃了怎么办 小孩吃了防潮珠怎么办 狗吃了防潮剂怎么办 洋桔梗有点烂根怎么办 变色球花枯萎了怎么办 桔梗花叶子蔫了怎么办 洋桔梗头垂下来怎么办 洋桔梗花容易折断怎么办 眼睛被火炮炸伤了怎么办 逆水寒包裹满了怎么办 逆水寒包裹里满了怎么办 grim soul包裹满了怎么办 剑三包裹满了怎么办 电脑开机后都是英文怎么办 欠员工工资仲裁老板不到庭怎么办 乔丹拖鞋鞋底硬怎么办 公牛插座电阻烧了怎么办 公牛led灯太刺眼怎么办 公牛插座usb坏了怎么办 墙壁上开关坏了怎么办 刑事二审判决后不服的怎么办 空调外机空间小怎么办 离婚判决生效书丢了怎么办 法院判决离婚对方上诉怎么办 法院判决离婚上诉中级法院怎么办 刑诉中二审发现一审事实错误怎么办 法院判决过了执行期怎么办 刑事犯罪判决后法院未执行怎么办 法院起诉对方不签字怎么办 法院判离婚对方不要签字怎么办 老人不能到法院签字怎么办 法院判决书被告人没签字怎么办? 法院判决离婚一方不签字怎么办 法院判决离婚对方不签字怎么办 法院已判决被告没有钱怎么办