C++中以下程序有什么错误

2025-03-07 03:13:44
推荐回答(2个)
回答1:

错误主要在GetID()函数的定义与调用不一致,还有长整型变量和int型占字节一样,我觉得用int更好
static long GetID(){return m_ID;}
此处的static,你的目的是不改变返回值吗?若是,应用const而不是static。若想不改变当前对象的值,函数定义应是 int GetID()const{return m_ID;}
类外函数调用时,它不属于任何类,不需要加类名,如GetID(),像你的这个程序,要输出ID,有两种方法:
1、调用类成员函数
1> 把GetID()函数的定义写在类内,代码如下
const int GetID(){return m_ID;}
2>GetID()定义在类外,代码如下
const int Person::GetID(){return m_ID;} (也可以不要const)
主函数中的输出改为:cout<<"ID"<2.调用类外函数,定义方式如下
int GetID(Person p){return p.m_ID;}
把主函数中的输出改为:cout<<"ID"<

回答2:

改好了:
#include "string.h"
#include "iostream"
using namespace std;
class Person
{
public:
char m_strName[20];
long m_ID;
Person(char *strName,long ID)
{
strcpy(m_strName,strName);
m_ID=ID;
}
long GetID() {return m_ID;}
};
void main()
{
Person person1("aaaaa",1233333);
cout<<"ID"<}