C++学习-类和对象(2)
来源:互联网 发布:js 隐藏鼠标 编辑:程序博客网 时间:2024/05/22 14:17
来源:http://blog.csdn.net/gzshun
类(class)是C++面向对象程序设计的核心,它是实现抽象类型的工具。类是通过抽象数据类型的方法来实现的一种数据类型。类是对某一类对象的抽象,而对象是某一种类的实例。
本文稍微说一下类和对象的基本使用,比较简单也是最基本的C++基础。
一. 类
类的定义有2个部分:声明部分和实现部分。
声明部分:用来声明类中的数据成员和成员函数(方法)。 ->告诉用户"干什么?"。
实现部分:用来对成员函数的定义。 ->告诉用户"怎么干"。
二. 类的关键字
1.public公有成员,在程序的任何地方都可以被访问。
2.private
私有成员,只能被成员函数和类的友元访问。
3.protected
保护成员,用于继承中。
三. 类的声明
下面只提供最简单的类声明,因为一个真正的类,还会涉及到很多性质或者特点。本实验是在Code::Blocks工具中进行的,为了规范性,这里总共创建了3个源文件:main.cpp test1.cpp test1.h
main.cpp: 主程序
test1.cpp: test1.h头文件中的类的定义
test1.h: 类的声明
- //test1.h
- #ifndef TEST1_H_INCLUDED
- #define TEST1_H_INCLUDED
- class CAnimal
- {
- public:
- int getAge();
- void setAge(int age);
- void addAge();
- private:
- int mAge;
- };
- #endif // TEST1_H_INCLUDED
四. 类的定义
当类的成员函数的函数体在类的外部定义时,必须由作用域运算符"::"来通知编译系统该函数所属的类。
- //test1.cpp
- #include "test1.h"
- int CAnimal::getAge()
- {
- return mAge;
- }
- void CAnimal::addAge()
- {
- mAge++;
- }
- void CAnimal::setAge(int age)
- {
- mAge = age;
- }
五. 对象的定义
CAnimal类的概念已经创建出来,现在就要实例化出一只动物,这里就用阿猫阿狗来举例。以下用2种方式来实例化对象:
1.CAnimal dog; //创建出了一只dog
2.CAnimal *cat = new CAnimal; //动态创建了一只cat
以下贴出使用dog和cat的具体操作:
- //main.cpp
- #include <iostream>
- #include "test1.h"
- using namespace std;
- int main()
- {
- //dog
- CAnimal dog;
- dog.setAge(12);
- cout << "Dog is " << dog.getAge() << " years old." << endl;
- cout << "After one year." << endl;
- dog.addAge();
- cout << "Dog is " << dog.getAge() << " years old." << endl;
- //cat
- CAnimal *cat = new CAnimal;
- cat->setAge(12);
- cout << "Cat is " << cat->getAge() << " years old." << endl;
- cout << "After one year." << endl;
- cat->addAge();
- cout << "Cat is " << cat->getAge() << " years old." << endl;
- return 0;
- }
六. 程序运行结果
- Dog is 12 years old.
- After one year.
- Dog is 13 years old.
- Cat is 12 years old.
- After one year.
- Cat is 13 years old.
七. C++中class与struct的区别
在C++面向对象语言中,class和struct的功能很相似,struct也是一种类。
区别:
一个struct也是一个class,但是struct的默认方式是公用部分,而class的默认方式是私用部分。
以下使用代码说明,下面的class与struct是等价的:
- class:
- class CAnimal
- {
- //默认是private
- int mAge;
- public:
- int getAge();
- void setAge(int age);
- void addAge();
- };
- <=>
- struct:
- struct CAnimal
- {
- //默认是public
- int getAge();
- void setAge(int age);
- void addAge();
- private:
- int mAge;
- };
八. 为什么类的定义以分号结束
这是什么问题?有人说我很无聊。
其实并不单单类的定义要以分号结束,C++中的struct也要以分号结束。原因很简单,因为咱们的使用习惯,或者说是编译器编译程序要考虑的情况,在定义之后,可以接一个对象的定义列表,理所当然要以分号结束。
看几个简单的例子:
1.class
- class CAnimal
- {
- //...
- }dog, cat;
2.struct
- struct CAnimal
- {
- //...
- }dog, cat;
3.int a, b, c; //O(∩_∩)O哈哈~
本博文是非常基础的,由简单循序渐进到复杂,这样才能培养出兴趣与恒心!
- Objective-C学习笔记2:类、对象和方法
- C++Primer学习笔记------对象和类(2)
- O-C学习笔记,类和对象
- OBJ-C类和对象学习笔记
- 从零开始学习C++(类和对象)
- c++---类和对象
- C++:类和对象
- 类和对象(C++)
- 【c++】类和对象
- C++:类和对象
- C++:类和对象
- 【C++】类和对象
- object-c 学习第二天(类对象和方法)
- object-c 学习第二天(类对象和方法)
- c/c++学习_封装(类和对象)
- C++Primer学习笔记------对象和类(1)
- iOS学习笔记-Objective-C-类和对象
- [类和对象]-C#OOP
- 润乾报表实现日历功能
- SSD固态硬盘开启云存储的新时代——SSD资料整理
- Ubuntu配置php上传文件限制
- Android Chronometer控件开发
- 我的第一篇博文 记录HTML5的学习(前言)
- C++学习-类和对象(2)
- windows下使用git管理github项目
- vi 常用命令行
- gridview里面使用代理类
- 如何参与开源项目(转)
- Sql cookbook学习笔记
- Windows 7 桌面便签使用小技巧
- Android ContentProvider学习
- 类和对象(2)