您的位置:首页 > 编程语言 > C语言/C++

C++ 类和对象浅解

2016-03-30 10:31 330 查看
#include<iostream>
#include <string.h>
using namespace std;

struct student{
int id;         //成员变量或对象
char name[64];
int age;
int score;
//...
};
typedef struct student STU;

void modify_stu_name(STU* pstu,const char*new_name)
{
strcpy(pstu->name, new_name);
}
void modify_stu_score(STU*pstu,const int new_score)
{
pstu->score = new_score;
}
void show_stu(STU*pstu)
{
cout<<"id="<<pstu->id<<endl;
cout<<"name="<<pstu->name<<endl;
cout<<"age="<<pstu->age<<endl;
cout<<"score="<<pstu->score<<endl;

}
class Student{
private:
//属性
int id;         //成员变量或对象
char name[64];
int age;
int score;

public:
//成员方法或函数//行为
Student(){}
Student(int i,const char*n,int a,int s){
id=i,strcpy(name,n),age=a,score=s;
}
void modify_stu_name(const char*new_name)
{
strcpy(name, new_name);
}
void modify_stu_score(const int new_score)
{
score = new_score;
}
void show_stu()
{
cout<<"id="<<id<<endl;
cout<<"name="<<name<<endl;
cout<<"age="<<age<<endl;
cout<<"score="<<score<<endl;
}
};//end class Student

int main()
{
//  Student s ={1001,"wangwu",20,99};
Student s(1001,"wangwu",20,99);
s.id =1003;
s.modify_stu_name("maliu");
s.modify_stu_score(95);
s.show_stu();

struct student stu={1001,"zhangsan",20,100};
stu.id = 1002;
modify_stu_name(&stu,"lisi");
modify_stu_score(&stu,90);
show_stu(&stu);
#if 0
//err:  name[64] = "lisi";
const char *p ="lisi";
//  p[0] = 'k';
strcpy(stu.name,"lisi");
strcpy(stu.name,p);
cout<<stu.name<<endl;
stu.score = 90;
cout<<stu.score<<endl;
#else
#endif
#if 0
name[0] = 'l';
name[1] = 'i';
name[2] = 's';
name[3] = 'i';
name[4] = '\0';
#else
//  strcpy(name, "lisi");
#endif
//  cout<<name<<endl;
//此“zhangsan”放在栈,因为name属于栈空间的
char name []="zhangsan";

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: