当前位置:首页 » 编程语言 » c语言的class

c语言的class

发布时间: 2025-03-02 23:17:48

1. C语言中的class的应用怎么用

C语言里没有class的概念,你可以写

int class = 0;
而不会有任何报错。
C++是基于C的一种面向对象扩展,它在C原有结构体(struct)的基础上,扩充了struct的功能(增加了成员函数,以及访问控制,继承等),并增加了class这一新定义。实际上class和struct的唯一区别就是:struct中的默认访问控制权限是public,而class的默认访问控制权限是private。
你可以定义一个类C的结构体
struct RecTangle{
int width; int height;
int pos_x; int pos_y;
};

给他添加一些成员函数

struct RecTangle{
int width; int height;
int pos_x; int pos_y;
int Right(); // get right
int Bottom(); // get bottom
int Left(); // get left
int Top(); // get top
};

为了隐藏结构体内的成员,添加访问控制标识:
struct RecTangle{
private:
int width; int height;
int pos_x; int pos_y;
public:
int Right(); // get right
int Bottom(); // get bottom
int Left(); // get left
int Top(); // get top
};

如果用class来代替struct,则需要添加访问控制标识.
比如用class来定义类C结构体
class RecTangle{
public:
int width; int height;
int pos_x; int pos_y;
};

2. 新手关于C语言中类(Classes)的问题,求高手!

#include<iostream>
using namespace std;
class X
{
int x; //定义类X的私有实例成员变量x
public:
X() {x=0;} //默认构造函数(无参数),将x初始化为0
X(int xx) {x=xx;} //重载的构造函数,将x初始化为xx
//虚函数,输出x的值,子类可以覆盖(重写)虚函数,从而实现多态
virtual void prt() {cout<<x;}
};
//类Y公共继承自类X,即Y是X的子类
class Y:public X
{
int y; //定义类Y的私有实例成员变量y
public:
//以下两行都是类Y的构造函数,它们都隐式调用了父类X
//的默认构造函数,以初始化父类的实例成员变量x(都初始化成0了)
Y() {y=0;}
Y(int yy) {y=yy;}
//这是覆盖(重写)父类的虚函数prt
void prt() {cout<<y;}
};
int main()
{
//x(10)会调用带一个参数的构造函数X(int xx),创建一个类X的对象x,
//x的成员变量x初始化为10
//z会调用默认构造函数X(),创建一个类X的对象z,
//z的成员变量x初始化为0
//y(11)会调用带一个参数的构造函数Y(int yy)(Y的),创建一个类Y的对象y,
//y的成员变量y初始化为11,同时通过调用父类X的默认构造函数,
//将父类的成员变量x初始化为0
X x(10),z;Y y(11);

//将x赋给z,调用z的成员函数prt,输出显示10
z=x;z.prt();
//将y赋给z,调用z的成员函数prt,输出显示0,
//因为调用的是父类X的prt,显示的是对象z的成员变量x的值
z=y;z.prt();
//以下新加的会输出显示11,
//因为调用的是子类Y的prt,显示的是对象y的成员变量y的值
y.prt();
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

3. C++的类和C里面的struct有什么区别

C++中的class和C语言中的struct在使用上有显着的区别。首先,class中的成员默认访问权限是私有的,而struct中的成员默认访问权限是公有的。这意味着在class定义中,除非特别声明为公有或保护,否则成员变量和方法默认是私有的,只有class内部可以访问它们。而在struct中,除非特别声明为私有或保护,否则成员默认可以被外部访问。

其次,class和struct在继承方面的默认方式也有所不同。class的默认继承方式是私有继承,这意味着子类只能访问基类中公有的成员,而struct的默认继承方式是公有继承,这样子类可以访问基类中的所有成员,包括私有的。

此外,C++中的类还支持虚函数和虚函数表,这是C语言的struct所不具备的。虚函数和虚函数表使得类可以实现多态性,这是面向对象编程中一个非常重要的特性。虚函数表是一种特殊的数组,用于存储指向虚函数的指针,它使得通过基类指针或引用可以调用派生类的虚函数。

总之,虽然C++中的class和C语言中的struct都用于封装数据,但它们在默认访问权限、默认继承方式以及面向对象特性支持等方面存在差异。对于更深入的理解,建议查阅现代编译原理的相关资料。

热点内容
编程珠玑第二版 发布:2025-03-03 16:24:50 浏览:60
国网统一权限密码是多少 发布:2025-03-03 16:24:07 浏览:130
如何打开通讯录的密码 发布:2025-03-03 15:53:13 浏览:63
c语言中a2 发布:2025-03-03 15:25:42 浏览:556
黄箱算法 发布:2025-03-03 15:20:46 浏览:768
php的ppt 发布:2025-03-03 15:20:42 浏览:43
日志服务器怎么搭建 发布:2025-03-03 15:16:10 浏览:700
gap压缩 发布:2025-03-03 15:16:04 浏览:339
maven的m2文件夹 发布:2025-03-03 15:14:43 浏览:341
php正则非 发布:2025-03-03 14:59:30 浏览:903