C++基础知识(5)---类和对象

终于把C++中的基础在前面的几篇博客中总结完了,可能还有一些语法还没有总结到,没关系,以后用到了再查资料就好。类是C++中的一个非常重要的概念,这是区别你使用的C++到底是面向过程还是面向对象的一个重要的标志。如果在你写的C++程序中没有使用到类,仅仅使用了C++中的几个库。那么你所使用的C++仍然是面向过程的,只有使用了类的C++程序才能说是面向对象的。当然前面的概念有些不太准确,面向对象是一种思想和设计方法,不是说牵强附会的使用了类就掌握了面向对象。面向对象的思想需要我们在慢慢培养和建立。

在C++的类中,我们通过三个关键字public,protected,private来限定类中成员的可见范围。public类型的成员对外部来说是暴露的,外部的程序可以通过这些接口来实现对类的操作。面向对象所基于的是客户服务器模型,我们所写的类和对象就是服务器,他们将各种已经写好的函数封装好,客户就是调用类中各种函数的程序。private声明的成员,对于外部客户来说是不可见的,但是对于类内部的各个成员来说是可见的,外部客户只能通过public声明的接口实现对类内部私有成员的操作。在C++中一般不将数据成员声明为public,从而实现了信息的封装。在使用类的成员时要用到类的成员操作符 . 和 ->。如下

 1 class A
 2 {
 3     public:
 4     void setA(int b)
 5     {
 6          a=b;
 7     }
 8     private:
 9     int a;
10 }
11 A aa,*ap;
12
13 aa.setA(10);
14 ap->setA(9);

可以看到,如果前面是对象实体,则使用 “.”,如果前面是对象指针则使用->。

在前面我们已经说过,struct关键字也可以声明类,那么是否struct关键字就完全等价于class关键字呢,答案显然是no。我们来看一下struct与class有什么区别。在struct中,如果一个成员前面没有public,protected,或者是private,那么它默认的就是公有成员,而在class中默认的是私有成员。

C++类的成员函数的定义既可以放在类的里面,也可以放在类的外面。但是成员函数的声明都必须放在类的里面。如果定义的函数体放在类的里面的话,就将这个函数当做内联函数来处理。但是也可以在声明的时候用关键字inline显式声明这个函数是内联函数。这时候函数体的定义即使放在外部也会按照内联函数来处理。如下:

 1 class A
 2 {
 3    public:
 4     int getA() const {return a;}
 5    inline void setA(int b);
 6
 7   private:
 8   int a;
 9 }
10
11 void A::setA(int b) {a=b;}

上例中的函数getA和setA都是内联函数。

时间: 2024-10-12 23:09:02

C++基础知识(5)---类和对象的相关文章

基础知识回顾——类和对象

面向对象编程是一种编程方式,最主要的特点是需要使用 "类"和 "对象" 来实现,类可以看作一个模板,模板里可以包含很多方法,方法可以实现一些功能:对象则是创建模板的实例,通过实例对象可以执行类中的方法. 类 1.认识类 通常我们把"鸟类"想象成所有鸟的集合,因此"鸟类"就是一个非常抽象的类:鸟普遍能飞需要食物,因此"能飞"和"需要食物"就是这个类的属性.再者我们不会说这是一只鸟类,而只会

【Java菜鸟学习总结】Java基础知识(类)

目录 [Java菜鸟学习总结]Java基础知识(类) 1.面向对象编程 2.类 3.static关键字 4.final关键字 [Java菜鸟学习总结]Java基础知识(类) 1.面向对象编程 1.1.面向对象编程的特征 面向对象编程(OOP)的三大特征 { 封装; 继承; 多态; } 1.2.类与对象概述 类与对象是面向对象的核心概念. 类与对象 { 类; // 类是对于一类事物的描述,是抽象的.概念的定义. 对象; // 对象是实际存在的该类事物的每个个体,因而也别称为实例. } 2.类 2.

o'c基础第一天类与对象

1. 在代码中如何使用面向对象的思维去解决问题. a. 千万不要自己去1步步实现. b. 先找1下有没有现成的专门做这个事情的人. 框架. 如果框架中有这样的人 直接喊过来用就可以了. c. 框架中如果没有呢?  就自己造1个拥有这个功能的人. 这个人不仅在这个地方可以使用 在另外的地方也可以使用. 2. 面向对象相对于面向过程. 面向对象的优点: 后期程序的维护和扩展非常的方便. 如果功能发生变化 我们只需要换1个人就可以了. OC Swift Java C# ...... 面向过程优点: 与

oc基础第二天类与对象---1复习

1. OC语言是在C语言的基础之上新增了一些面向对象的语法. 将C语言复杂的.繁琐的.东西封装的更为简单和易用. Objective-C: 本质其实就是C语言. OC完全兼容C. 2. OC将C难用的东西做了封装. 1). #import指令. 2). NSLog()函数. 3). NSString @"jack" 新增了一些数据类型. BOOL class 类 3. 面向过程与面向对象. 4. 代码中的面向过程与面向对象. 5. 类与对象 类 对象 6. 类和对象的关系 类是模板 对

阿花宝宝 Java基础笔记 之 类和对象

一,对象对象:客观存在的事物就是对象对象包含:属性(特征)  和   方法(操作)二,类类:具有相同属性和方法的一组对象的集合.类和对象的关系就是抽象和具体的关系.类是对象的集合,对象是类的实例. 定义一个类的步骤1.定义类名 2.编写类的属性3.编写类的方法public class  <类名>{ //定义属性部分 定义变量来描述类所具有的属性,这些变量称为类的成员变量.  //定义方法部分 访问修饰符  返回值类型 方法名(){  方法体 }}创建和使用对象类名 对象名=new 类名(); 

spark快速开发之scala基础之3类,对象,特征

类 scala的类定义非常灵活 class test4 class test2{} class test3(x:Int) 定义一个带构造函数的类 class Point (x : Int,y : Int){ def add() : Int = { x1 + y2 } } 通过this来重写构造函数 def this(X1 : Int){ this(X1,1) } def this(X2 : String){ this(0,1) } 除了重写构造函数,还可以当作当前对象的引用. def add(x

Java基础9-java的类、对象和方法

一.什么是类.对象和方法? 1.类 类用官方解释为:类是一个模板,它描述一类对象的行为和状态.类本身就是一种抽象的概念(以后我们还会介绍抽象类). 举个例子:DOTA中有许多英雄.这些英雄(无论是敏捷还是力量型,无论是天辉还是夜魇)都可以统称为DOTA英雄,DOTA英雄就是一个大类.当然,我们还可以继续划分,比如力量型是一类,敏捷型是一类.天辉是一类,夜魇是一类. 2.类的属性或状态 通过上边的例子,我们发现英雄都有名字.血量.魔法值.技能个数.移动速度等等.这些就是我们这一类的属性或状态.当然

Js基础知识1-对象、对象属性全解

Object对象 Object对象包含如下属性和方法,也就意味着一切对象(函数也是对象)都包含如下方法. 每种方法和属性在不同的对象中有不同的作用,并不是每种对象都有使用每个方法的必要. 下面是Object对象的派生对象在使用这些方法和属性时的意义.Object对象只是定义了他们,并没有使用他们. __proto__属性是保存当前对象的原型对象.对象通过这个属性产生了原型链,可以参考http://blog.csdn.net/luanpeng825485697/article/details/78

C++基础知识 基类指针、虚函数、多态性、纯虚函数、虚析构

一.基类指针.派生类指针 父类指针可以new一个子类对象 二.虚函数 有没有一个解决方法,使我们只定义一个对象指针,就可以调用父类,以及各个子类的同名函数? 有解决方案,这个对象指针必须是一个父类类型,我们如果想通过一个父类指针调用父类.子类中的同名函数的话,这个函数是有要求的: 在父类中,eat函数声明之前必须要加virtual声明eat()函数为虚函数. 一旦某个函数被声明为虚函数,那么所有派生类(子类)中eat()函数都是虚函数. 为了避免你在子类中写错虚函数,在C++11中,你可以在函数

Python 基础入门 6_1 类与对象

# 类:一种数据类型,本身并不占内存空间,跟所学过的number等类型,一个类由属性(变量)和方法(函数)组成# 对象: 要使用类内部的属性和方法,就需要实例化类,这种实例化类就叫做对象 """定义类类名:首字母大写,其他遵循驼峰原则属性:其他遵循驼峰原则行为(方法/功能):其他遵循驼峰原则 创建一个类,格式如下:class 类名(): 定义属性(定义变量) 定义方法(定义函数)#在类中定义方法(函数)时,第一个参数名为self,表示对象名 构造函数:__init__(sel