在继承中遇到的问题
#include <iostream>
#include <string>
using namespace std;
class CPerson
{
public:
void SetData(char *name, char *id, bool isman = 1)
{ int n = strlen(name);
strncpy(pName, name, n); pName[n] = '\0';
n = strlen(id);
strncpy(pID, id, n);
pID[n] = '\0';
bMan = isman;
}
void Output()
{
cout<<"姓名:"<<pName<<endl;
cout<<"编号:"<<pID<<endl;
char *str = (bMan ?"男":"女");
cout<<"性别:"<<*str<<endl;
}
private:
char pName[20];
char pID[20];
bool bMan;
};
class CStudent: public CPerson
{
public:
void InputScore(double score1, double score2, double score3)
{
dbScore[0] = score1;
dbScore[1] = score2;
dbScore[2] = score3;
}
void Print()
{
Output();
for (int i=0; i<3; i++)
cout<<"成绩"<<i+1<<":"<<dbScore[i]<<endl;
}
private:
double dbScore[3];
};
class Cteacher: public CPerson
{
public:
void Inputage(double age)
{
tage = age;
}
void Print()
{
Output();
cout<<"教龄:"<<tage<<endl;
}
private:
double tage;
};
int main()
{
CStudent stu;
Cteacher tea;
stu.SetData("LiMing", "21010211",0);
stu.InputScore( 80, 76, 91 );
stu.Print();
tea.SetData("张力","001");
tea.Inputage(12);
tea.Print();
return 0;
}
[Error] C:\Users\郑晓斌\Documents\C-Free\Temp\未命名1.cpp:19: error: invalid conversion from `const char*' to `char*' 求大侠解释啊
[解决办法]
void SetData(const char *name, char *id, bool isman = 1)
[解决办法]
char *str = (bMan ?"男":"女");
不能这么用,改成下边这样肯定可以。
char str[10];
if(bMan)
strcpy(str, "男");
else
strcpy(str, "女");
[解决办法]
const char *str = (bMan ?"男":"女");
[解决办法]
顶楼上
忘了*str可以动态赋值。。。
[解决办法]
菜鸟进来学习一下,VS2005可以通过,没问题
[解决办法]
char *str = (bMan ?"Man":"Woman"); 只能输出M 或者 W
汉字没输出
[解决办法]
string strName = (bMan ?"男":"女");
string == const char *
[解决办法]
姓名:LiMing
编号:21010211
性别:女
成绩1:80
成绩2:76
成绩3:91
姓名:张力
编号:001
性别:男
教龄:12
请按任意键继续. . .