/*設計一個Student類,每名學生包含學號、姓名和成績3個屬性,
其中,學號、姓名是公有屬性,成績是私有屬性。
通過不同的方式對學生的學號、姓名、成績進行賦值。
然后呼叫成員函式display輸出學生的學號、姓名和成績資訊。*/
請問如果要給下面代碼中無參建構式下的name賦值的話,陳述句應該怎么寫呢,我之前寫的是name={'無','名','氏'};編譯器報錯了;
還有主函式中的Student s1,s2("002","張三",18);這條陳述句,編譯器提示“沒有與引數串列匹配的建構式”是什么原因呀
#include<iostream>
using namespace std;
class Student{
public:
char ID[20];
char name[10];
//無參建構式
Student()
{
cout<<"默認:"<<name<<"出生"<<endl;
}
//有參建構式
Student( const char a,const char b ,int c)
{
cout<<"張三出生!"<<endl;
ID[20]=a;
name[10]=b;
score=c;
void display();
}
//解構式
~Student()
{
cout<<name<<"死亡!"<<endl;
}
void display(){
cout<<"學號:"<<ID<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"成績:"<<score<<endl;
}
private:
int score;
};
int main()
{
Student s1,s2("002","張三",18);
s1.display();
s2.display();
return 0;
}
uj5u.com熱心網友回復:
感謝邀請,寫過的例子可參。uj5u.com熱心網友回復:
這里只說說我看到的錯誤啊,其余的代碼沒細看,個人認為這些錯誤的出現是你缺乏基本的常識造成的,最好找一本c/c++的入門書籍系統的學習一下Student( const char a,const char b ,int c)//這里 a,b宣告為char是不對的,應該是const char*
{
cout<<"張三出生!"<<endl;
ID[20]=a;//這里id[2]意義不明,結合背景關系來說應該用 id=strdup(a);或者strcpy(id,a);
name[10]=b;//這句話同上
score=c;
void display();
}
uj5u.com熱心網友回復:
class Student {
public:
char ID[20] = { 0 };
char name[10] = { 0 };
//無參建構式
Student()
{
strncpy(name, "無名氏", 10);
cout << "默認:" << name << "出生" << endl;
}
//有參建構式
Student(const char* a, const char* b, int c)
{
cout << "張三出生!" << endl;
strncpy(ID, a, 20);
strncpy(name, b, 10);
score = c;
void display();
}
//解構式
~Student()
{
cout << name << "死亡!" << endl;
}
void display() {
cout << "學號:" << ID << endl;
cout << "姓名:" << name << endl;
cout << "成績:" << score << endl;
}
private:
int score = 0;
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/75955.html
標籤:C++ 語言
上一篇:計算機原始碼和補碼問題
