作者:gzshun. 原创作品,转载请标明出处!
来源: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哈哈~
本博文是非常基础的,由简单循序渐进到复杂,这样才能培养出兴趣与恒心!
分享到:
相关推荐
C++学习笔记,博主个人向。内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联...
数据结构习题解析-面向对象方法和C++语言描述-殷人昆.doc
面向对象程序设计C++-date类包含基本格式,用于初学者的学习。
C++课件_面向对象高级编程的学习课件
C++是近年来国内外广泛使用的现代计算机语言,它既支持面向过程的程序设计,也支持基于对象和面向对象程序设计。国内许多高校已陆续开设了C++程序设计课程。但是,由于C++涉及概念很多,语法比较复杂,内容十分广泛...
c++学习小资料,学习有关类和对象,还有相关实例(机动车管理系统)介绍。
详细介绍了C++中类与对象的特点和应用,供初学者学习使用
本资源为C++实验1-13,包含完整程序、注释、报告非常适合初学者学习、研究,具体如下: 实验1-熟悉Visual C++编程环境 实验2-利用函数编程 实验3-指针与引用的编程 实验4-类与对象的编程 实验5-构造函数与析构函数的...
C++全套学习课件类和对象的其他特性.pdf
C++学习资料,学习面向对象语言的朋友可以看看
安卓逆向学习笔记之ART中的C++对象内存布局及获取art-method和dex-file对象.docx
c++计算器 用简单的代码实现的一个基于c++语言的计算器。功能简单 学习起来不复杂 简单容易
C++版中国象棋 面向过程,面向对象 简单易懂,各种备注 简单的博弈算法,控制台版的 简供大家学习
关于C++类和对象的一些源代码与实例,老师给的,想学习的可以看看!
详细的介绍了c++的有关细节,希望正在学习这方面知识的有志之士可以用的到啊
P121~126C++类和对象C++运算符重载学习笔记.docx
推荐给想学C++的朋友一个简单但是完整的学习C++的读书路线图: C++ Primer -> c++标准程序库-> C++编程思想 -> effective C++ -> effective STL->深入探索C++对象模型
该实例摘自范磊老师编写的《c++全方位学习》,该实例简明扼要,概括了链表的所有操作:插入节点、删除节点、及节点号排序、节点搜索等,特别适合于学习链表知识
类和对象的详细解答,让初学者能很好地了解c++中重要的两个概念,有助于进一步学习
大学时的主要课程设计,包括【OOP(C++)-面向对象课程设计:教室管理系统】、【程序设计实践课程设计:小型超市库存与销售管理系统】、【操作系统课程设计:动态分区分配设计与实现】、【数据结构课程设计:基于哈希...