c++篇——从零开始学类【一】
hello大家好,最近在做c++实验,就正好更新以下c++一大特色类的使用,主要通过实验来进行讲解,欢迎大家观看学习以及讨论~~
c++类与对象的基本应用
类的认识
c++中有许多有意思的东西,今天我带着大家入门类的学习,首先我们要知道什么是类。
相信大家在学习类之前肯定已经接触过了结构体和构造函数。
那么类对于我自己的理解就是一个可以同时构造函数和结构体的东西,这个叫类。
那么我们话不多说直接看实验。
实验目的
创建一个学生类,包含四个成员变量,均为私有成员,分别为:ID、姓名、出生日期、院系,其中ID由系统自动计算产生;至少包含一个成员函数,输出学生的属性信息。
构造函数有三个
默认构造函数,不含参数。
包括姓名、出生日期、院系的构造函数
包括姓名、出生日期,不包含院系的构造函数,其中院系默认是计算机学院。
创建学生对象,输出学生信息,测试类是否正确。
定义对象引用,采用引用方式访问前面的对象。
定义对象指针,采用指针方式访问前面的对象。
创建学生对象数值,至少包含5个学生
用new的方式常创建对象。
分别使用不同的构造函数创建对象。
分别使用不同方式为对象进行初始化(构造函数的多种参数传递方式)。
通过循环方式调用学生对象的输出函数,输出学生信息,比较输出信息的不同。
完成实验
认真阅读,一个学生类,然后三个不同的构造函数,这不洒洒水啦,我们分开看
首先是构造函数
class student{
private:
int id;
string name;
string day;
string yuan;
public:
student();
student(string name1 , string day1 ,string yuan1);
student(string name1 ,string day1);
};
三个构造函数是不是就好啦,然后我们可以实现将我们需要的数值导入的工作
这里有两种方法,第一种是我一开始用的方法:
student::student(){
name="xiaoming";
day="2000.1.1";
yuan="计算机学院";
id=++dd;
}
student::student(string name1, string day1,string yuan1){
id=++dd;
name=name1;
day=day1;
yuan=yuan1;
}
student::student(string name1,string day1){
id=++dd;
name=name1;
day=day1;
yuan="计算机学院";
}
你们肯定也发现了我们构造函数中的name1,day1其实就是将类中的导入到函数中,这是第一种方法用两个不同名字的变量,也可以用
student::student(string name,string day){
id=++dd;
this->name=name;
this->day=day;
yuan="计算机学院";
}
这种方法就可以实现两个名字相同,用指针导入。【我这里知识举个例子】
然后往下看引用就很简单啦直接上代码
student *s;
s=new student[100];
int n;
cin>>n;
for(int i=0;i<n;i++){
s[i].sca();
}
// s[1]=student("zhang","2000.1.2");
// s[2]=student("chen","2000.1.3","文学院");
// s[3]=student();
for(int i=0;i<n;i++){
s[i].show();
}
我这里注释是自己的测试,sca和show方法你们可以自己写
然后就是完整代码了
#include<iostream>
#include<iomanip>
using namespace std;
int dd=0;
class student{
private:
int id;
string name;
string day;
string yuan;
public:
student();
student(string name1 , string day1 ,string yuan1);
student(string name1 ,string day1);
void show(){
cout<<"学生的id、姓名、出生日期、院系"<<endl;
cout<<id<<" "<<name<<" "<<day<<" "<<yuan<<endl;
}
void sca(){
cin>>name>>day>>yuan;
}
};
student::student(){
name="xiaoming";
day="2000.1.1";
yuan="计算机学院";
id=++dd;
}
student::student(string name1, string day1,string yuan1){
id=++dd;
name=name1;
day=day1;
yuan=yuan1;
}
student::student(string name1,string day1){
id=++dd;
name=name1;
day=day1;
yuan="计算机学院";
}
int main(){
student *s;
s=new student[100];
int n;
cin>>n;
for(int i=0;i<n;i++){
s[i].sca();
}
// s[1]=student("zhang","2000.1.2");
// s[2]=student("chen","2000.1.3","文学院");
// s[3]=student();
for(int i=0;i<n;i++){
s[i].show();
}
return 0;
}
实现后验证输入和输出就可以了,但是要注意因为三个构造函数是不一样的,所以输入的时候要注意学院部分,我这里没有写,但是如果老师只要求你们不用随意输入用我注释的部分可以得到这样的结果就正确了
好啦第一次学习就到这里了,我会持续更新~