struct student {
//成员变量
int number; //学号
char name[100]; //学生名
void func() //成员函数(方法)
{
number ++;
return;
}
}
void func(student tmpstu) //形参用结构变量
void func(student &tmpstu) //形参变成了引用。
{
tmpstu.number = 2000;
strcpy_s(tmpstu.name, sizeof(tmpstu.name), "who");
return;
}
void func(student *tmpstu) //使用指针作为变量传递一样可以改变值
{
tmpstu->number = 2000;
strcpy_s(tmpstu->name, sizeof(tmpstu->name), "who");
return;
}
一:结构回顾
结构:自定义的数据类型
student student1; //定义结构变量。这里可以省略struct,直接用结构名student
student1.number = 1001;
strcpy_s(student1.name, sizeof(student1.name), "zhangsan");
cout<<student1.number<<endl;
cout<<student1.name<<endl;
func(student1); //效率低,因为实参传递给形参时发生了内存内容的一个拷贝,值拷贝不会改变值
//用指向结构体的指针做函数参数
func(&student1); //值会被修改
C++中的结构和C中的结构有什么区别呢?
C++中的结构除具备了C中结构的所有功能外,还增加了很多扩展功能,其中最突出的扩展功能之一就是:C++中的结构不仅仅有成员变量,还可以在其中定义成员函数(方法);
二:public和private权限修饰符
public:公共的意思,用这个修饰符修饰结构/类中的成员变量/成员函数,就可以被外界访问。
一般我们需要能够被外界访问的东西,就定义为public。就好像是该类的外部接口一样。
private:私有的意思,用这个修饰符修饰结构/类中的成员变量/成员函数,只有被内部定义的成员函数才能使用。
三:类简介:类也是用户自定义的数据类型
大家已经知道了:
1、不管C还是C++,结构都用struct定义
2、为了方便大家理解,曾经说过:大家就把C语言中的结构池成C++中的类;这个话并不全面,只是为了方便理解
结构和类的区别:
1、类这个东西,只在C++中才有这个概念,C中没有类这个概念
2、结构用struct定义,类用class定义
在C中,我们定义一个属于该结构的变量,我们叫结构变量。
在C++中,我们定义了一个属于该类的变量,我们叫对象。
说白了,结构变量也好,对象也好,它们都是一块能够存储数据并且具有某种类型的内存空间。
3、C++中结构和类极其类似,区别有两点:
3.1、C++结构内部的成员变量以及成员函数默认的访问级别都是public。
C++类内部的成员变量以及成员函数默认的访问级别都是private。
3.2、C++结构体继承默认的是public,而C++类的继承默认都是private。
额外说明
1、标准C++库里包含大量丰富的类和函数。string
四:类的组织,书写规范:
类的定义代码会放在一个.h头文件中,头文件名可以跟类名相同,student.h
类的具体实现代码,放在一个.cpp文件中,student.cpp