概述
目录
- 目录
- 类与对象
- 类的声明
- 成员函数
- 成员访问限定符
- 对象的定义
- 对象的存储模型
- 类的声明
- class与struct的区别
类与对象
在C++中,类是对象的抽象,而对象是类的具体实例。简单说对象的类型就是类。
因为类是抽象的,所以不占用内存空间。而对象是具体的,系统会给对象分配存储空间。
类的声明
C++对类的声明的一般形式:
class 类名
{
public:
//公有的属性和成员函数;
private:
//私有的属性和成员函数;
protected:
//保护的属性和成员函数;
};
成员函数
成员函数的实现有两种方法,第一种在类内实现,第二种在类外实现。但是考虑类的封装,建议最好将成员函数的实现在类外实现。这样写出来的类清晰明了,实现类的接口与实现细节分离。
class Test
{
public:
int x_;
void setXYZ(int x, int y, int z); //成员函数的声明
void display(); //成员函数的声明
private:
int y_;
protected:
int z_;
};
inline函数定义:在类内定义的成员函数,系统默认为内置函数,内置函数也可以显式声明,在类外实现。
inline函数作用:为了减少运行时间,典型的空间换时间例子。
成员访问限定符
1、public:类与外部的接口,外部函数可以访问公有属性和成员函数。
2、private:只允许本类中的函数访问,类外没有访问权限。
3、protected:与private相似,只允许本类中的函数访问,类外没有访问权限。差别在于继承和派生时对派生类的影响不同。
对象的定义
对象的定义有三种:
- 先声明类类型,再定义对象
- 在声明类的同时定义对象
- 不出现类名,直接定义对象
如:class student stud1;
对象的存储模型
同一类的不同对象中的数据成员的值一般不同,但是不同对象的函数的代码是相同的。
this指针:指向本类对象的指针,它的值是当前被调用的成员函数所属对象的起始地址。
当你实现成员函数的时候,发现需要返回成员函数的地址,此时需要用到this指针。
class与struct的区别
/*****************************************************
Copyright (C): 2017-2018
File name : main.cpp
Author : Zhengqijun
Date : 2017年02月28日 星期二 11时56分45秒
Description : 主函数
Funcion List : main
*****************************************************/
#include <iostream>
using namespace std;
class people //类
{
int x_;
};
struct person //结构体
{
int y_;
};
int main()
{
class people a; //定义对象
struct person b; //定义结构体变量
a.x_ = 1;
b.y_ = 2;
cout << a.x_ << endl;
cout << b.y_ << endl;
return 0;
}
编译如下所示:
main.cpp: In function ‘int main()’:
main.cpp:16:6: error: ‘int people::x_’ is private
int x_;
^
main.cpp:29:4: error: within this context
a.x_ = 1;
^
main.cpp:16:6: error: ‘int people::x_’ is private
int x_;
^
main.cpp:32:12: error: within this context
cout << a.x_ << endl;
^
从编译结果可以看出,类的属性默认为私有的,外部不能访问,结构体的属性默认为公有的,外部可以访问。所以编译器报了不能访问x_,可以直接访问y_。
最后
以上就是拼搏过客为你收集整理的【C++编程】 - 类与对象目录类与对象class与struct的区别的全部内容,希望文章能够帮你解决【C++编程】 - 类与对象目录类与对象class与struct的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复