test.h中的代码:
#ifndef TEST_H
#define TEST_H
class Student //对于C++class,所有的成员变量都是这个类私有的,不能在类的外部访问
{
public:
char name[10];
int age;
//char *classes;
private:
int money;
public:
void set_money(int n);
int get_money( );
Student(); //构造函数
Student(const char *s,int n); //构造函数重载
~Student(); //析构函数
};
#endif // TEST_H
test.cpp中的代码:
#include"test.h"
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
void Student::set_money(int n)
{
money=n;
}
int Student::get_money()
{
return money;
}
Student::Student()
{
printf("begin\n");
//classes=new char[100]; //在构造函数中分配了100个char
}
Student::Student(const char *name,int age)
{
//一旦参数名字和类变量的名字重名
//加一个this关键字说明变量所属,this指向自己的指针
strcpy(this->name,name);
this->age=age;
}
Student::~Student()
{
printf("end\n");
//delete []classes; //清理构造函数中分配的堆空间内存
}
main.cpp中的代码:
#include <iostream>
#include "test.h"
using namespace std;
int main()
{
Student*p=new Student("mike",10);
p->set_money(100);
cout<<"name="<<p->name<<",age="<<p->age<<endl;
cout<<"money="<<p->get_money()<<endl;
delete p;
return 0;
}
运行结果: