C++ 类定义

C++ 类定义

定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。

类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。例如,我们使用关键字 class 定义 Box 数据类型,如下所示:

class Box

{

public:

double length;   // Length of a box

double breadth;  // Breadth of a box

double height;   // Height of a box

};

关键字 public 确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。您也可以指定类的成员为 privateprotected,这个我们稍后会进行讲解。

定义 C++ 对象

类提供了对象的蓝图,所以基本上,对象是根据类来创建的。声明类的对象,就像声明基本类型的变量一样。下面的语句声明了类 Box 的两个对象:

Box Box1;          // 声明 Box1,类型为 Box

Box Box2;          // 声明 Box2,类型为 Box

对象 Box1 和 Box2 都有它们各自的数据成员。

访问数据成员

类的对象的公共数据成员可以使用直接成员访问运算符 (.) 来访问。为了更好地理解这些概念,让我们尝试一下下面的实例:

#include <iostream>

using namespace std;

class Box

{

public:

double length;   // 长度

double breadth;  // 宽度

double height;   // 高度

};

int main( )

{

Box Box1;        // 声明 Box1,类型为 Box

Box Box2;        // 声明 Box2,类型为 Box

double volume = 0.0;     // 用于存储体积

// box 1 详述

Box1.height = 5.0;

Box1.length = 6.0;

Box1.breadth = 7.0;

// box 2 详述

Box2.height = 10.0;

Box2.length = 12.0;

Box2.breadth = 13.0;

// box 1 的体积

volume = Box1.height * Box1.length * Box1.breadth;

cout << "Box1 的体积:" << volume <<endl;

// box 2 的体积

volume = Box2.height * Box2.length * Box2.breadth;

cout << "Box2 的体积:" << volume <<endl;

return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:

Box1 的体积:210

Box2 的体积:1560

需要注意的是,私有的成员和受保护的成员不能使用直接成员访问运算符 (.) 来直接访问。我们将在后续的教程中学习如何访问私有成员和受保护的成员。

时间: 2024-12-26 22:58:38

C++ 类定义的相关文章

javascript类定义小结

网上可以找到各种各样的javascript定义类的方法: 1.ECMAScript 定义类或对象 2.Javascript定义类(class)的三种方法 我想整理出一个“简洁”的类定义模板,实现代码的模块化. 一.命名空间 //根命名空间 var Root; if(!Root) Root={}; ... //二级命名空间 if(!Root.SecondNS) Root.SecondNS={}; 诸如此类. 二.类定义 通过定义类,实现代码的模块化    <script> //#region 类

Obj-C 语言学习 笔记(II)类定义与实现

Obj-C的类定义,与C++一样,头文件和实现文件分开. 注:本文中的例子采用Mitch Fisher, Gary Bennett, Brad Lees所编<Objective-C 初学者指南>一书中的例子.本人编译的环境为Xcode 7. 不知是否因为苹果公司在推swift,个人在.h文件里写东西的时候coding辅助跟不上.在Swift中,类的声明和实现被归在同一个.swift文件中. 头文件中类的声明 - 成员变量部分 // // RadioStation.h // RadioStati

c++类定义和类实现

预备知识: c++中我们cpp文件和.h文件的区别是,cpp文件是需要编译的文件,成为一个独立的编译单元,而h文件从来是不需要编译,只是用于预处理. 通常我们在cpp文件中,完成函数的实现,然后在h中则是对于函数的声明,由于默认情况下,全局变量和全局函数存储类型都是extern类型的,所以我们不需要显示的使用extern 这样,我们其他的cpp文件,只要#include .h文件,则在cpp中实现的函数,就能在其他cpp中使用,因为我们已经用.h文件,完成了extern函数声明的操作. c++类

JS类定义方式

// 方法1 对象直接量 var obj1 = { v1 : "", get_v1 : function() { return this.v1; }, set_v1 : function(v) { this.v1 = v; } }; obj1.set_v1('hello1'); alert(obj1.get_v1()); // 方法2 定义函数对象 var Obj = function() { var v1 = ""; this.get_v1 = function(

php 类中定义全局变量|php类定义变量|php类定义常量

PHP 预定义超全局数组/变量 => http://www.q3060.com/list3/list117/23295.html PHP预定义变量 - PHP 超级全局变量 => http://www.q3060.com/list3/list117/23278.html php怎么定义全局变量 => http://www.q3060.com/list3/list117/22852.html php 的全局变量与局部变量 => http://www.q3060.com/list3/l

Js 类定义的几种方式

提起面向对象我们就能想到类,对象,封装,继承,多态.在<javaScript高级程序设计>(人民邮电出版社,曹力.张欣译.英文名字是:Professional JavaScript for Web Developers)这本书中描述的还算比较详细.我们看看JavaScript中定义类的各种方法. 1.工厂方式 javaScript中创建自己的类和对象,我们应该是必须掌握的,我们都知道javaScript中对象的属性可以在对象创建后动态定义,比如下面的代码: <script type=&q

C++:成员函数实现在类定义中与在类定义外的区别

//a.cpp class A{ public: int fun(int x){ return (x*x+1000); } }; void tt() { } //b.cpp class A{ public: int fun(int x); }; void tt(); int yy() { tt(); A a; return a.fun(3); } 将它们分别编译后再链接:显示链接错误,因为b.cpp(b.o)中找不到A::fun(int)的引用. 将以上的a.cpp改为如下所示:class A{

定义一个长方形类,定义 求周长和面积的方法实例

/* 定义一个长方形类,定义 求周长和面积的方法, 然后定义一个测试了Test2,进行测试. 长方形的类: 成员变量: 长,宽 成员方法: 求周长:(长+宽)*2; 求面积:长*宽 注意: import必须出现在所有的class前面.*/ import java.util.Scanner; class ChangFangXing { //长方形的长 private int length; //长方形的宽 private int width; public ChangFangXing(){} //

只能从脚本中调用在类定义上有[ScriptService]属性的Web服务问题的解决方案

ajax调用webservice中的接口时, 会出现[只能从脚本中调用在类定义上有[ScriptService]属性的...]的异常. 这是因为, 在.net3.5中, 访问web服务, 要对web服务添加修饰: [System.Web.Script.Services.ScriptService]