C++中的结构体和类简介

简介:
在C++中,结构体和类是用于组织相关数据和函数的用户自定义数据类型。本文将对结构体和类的定义、区别以及使用进行简介。

一、结构体和类的定义:


1. 结构体(struct):
   结构体是C语言中的概念,在C++中也得到了保留和扩展。结构体用于组织多个不同类型的数据成员,可以包含成员变量和成员函数。结构体中的成员变量和成员函数默认为公有(public)属性。

struct student//结构
{
public://结构成员缺省都有public的属性,所以可以不加public。
private://结构外的东西不能被访问,只能在结构中调用
	char name[100];
	int numbers;
public://可以在一个结构中定义  多个   公有私有的public和private
	void a()//成员函数(方法)
	{
		numbers++;
		return;
	}
};
	一、结构回顾:
	结构:自定义的类型数据
	student student1;//定义结构变量,这里可以省略struct,之间用结构名student。
	student1.numbers = 1001;
	strcpy_s(student1.name, sizeof(student1.name), "zhangsan");
	cout << student1.numbers << endl;
	cout << student1.name << endl;
	func(& student1);//效率低,因为实参传递给形参值要拷贝。在形参加上引用&可以解决改变值的问题。
	cout << student1.name << endl;//这个值没有被函数改变
	cout << student1.numbers << endl;//值没有被函数改变、

2.  C++中的结构和C语言的区别:
    C++中具备C语言的所有功能外,还增加了了很多功能,其中最突出的扩展功能之一就是:
    c++中的结构不仅仅有成员变量,还可以在其中定义成员函数(方法) 
    调用方法:student1.a();调用成员函数(方法) 

3. 类(class):
   类是C++中引入的概念,用于组织多个数据成员和成员函数。类中的成员变量和成员函数默认为私有(private)属性。类提供了更多的面向对象特性,如封装、继承和多态。

public和private权限修饰符:public(公有),private(私有)

 (1)public:公有的意思,用这个修饰符修饰    结构/类中的成员变量/成员函数,就可以被外界访问。
          一般来讲能被外界访问的函数,就定义为public,就好像是该类的外部接口一样
  (2)private:私有的意思,用这个修饰符修饰 结构/类中的成员变量/成员函数,只有被内部定义的成员函数才能被使用
 

二、结构体和类的区别:


1. 默认访问级别:
   结构体中的成员变量和成员函数默认为公有属性,而类中的成员变量和成员函数默认为私有属性。在定义时,建议明确指定访问级别,统一加上public和private修饰符。

2. 继承默认访问级别:
   在C++中,结构体的继承默认为public,而类的继承默认为private。这意味着通过结构体继承的成员在子类中仍然是公有的,而通过类继承的成员在子类中则变为私有的。

3。总结:

(1)类这个东西,只有在C++中才有这个概念,C语言中没有这个概念
(2)结构用struct定义,类用class定义
    在C语言中,我们定义一个属于结构的变量,我们叫结构变量。
    在C++中,我们定义了一个属于该类的变量,我们叫对象。
       说白了  结构变量 也好  对象 也好,他们都是一块能够储存数据并且具有某种类型的内存空间。

(3)C++中结构和类极其相似,区别有两点
           1、C+++  结构   内部的成员变量以及成员函数,默认具有public的属性。
                C++    类    内部的成员变量以及成员函数,默认访问级别是private。
                无论是 结构变量 和 类的定义 建议在定义的时候统一加上public和private
           2、C++结构体继承默认的是public,而C++类的继承默认为private。

 额外说明:
    (1)标准C++库里包含大量丰富的类和函数。string;

三、结构体和类的使用示例:
下面是一个简单的示例代码,演示了如何使用结构体和类:

#include <iostream>
using namespace std;

struct Student {
    int numbers;
    string name;
};

class Teacher {
private:
    int id;
    string name;
public:
    Teacher(int i, string n) {
        id = i;
        name = n;
    }
    void printInfo() {
        cout << "Teacher ID: " << id << endl;
        cout << "Teacher Name: " << name << endl;
    }
};

int main() {
    // 使用结构体
    Student student1;
    student1.numbers = 123;
    student1.name = "John Doe";
    cout << "Student Numbers: " << student1.numbers << endl;
    cout << "Student Name: " << student1.name << endl;

    // 使用类
    Teacher teacher1(1, "Jane Smith");
    teacher1.printInfo();

    return 0;
}

四、类的组织,书写规范
    类的定义代码会放在一个.h头文件中,头文件名可以和类名相同,student.h
    类的具体实现代码,放在一个.cpp文件中,student.cpp 

结论:
本文介绍了C++中的结构体和类的定义、区别以及使用。结构体和类都是用于组织相关数据和函数的自定义数据类型,但在默认访问级别和继承默认访问级别上存在区别。在实际使用中,可以根据需要选择结构体或类,并根据需求定义不同的访问级别,以实现更好的封装和代码组织。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值