第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

麻煩指點下在C++中指針的賦值與讀取該怎么寫?

麻煩指點下在C++中指針的賦值與讀取該怎么寫?

C++ C
天涯盡頭無女友 2022-06-03 13:09:09
我的類是這樣寫的class base{private:int id;char *name;int getId(){return id;}*char getName(){return *name;}void setId(int id){this->id=id;}void setName(char *name){this->name=name;}}主函數(shù)里這樣調用的int main(int argc, char* argv[]){base b;char *p="xxxxx";b.setName(p);cout<<b.getName();return 0;}報了一車錯誤:e:\wokc++\繼承多態(tài)\test\base.h(15) : warning C4518: 'char ' : storage-class or type specifier(s) unexpected here; ignorede:\wokc++\繼承多態(tài)\test\base.h(16) : error C2501: 'getName' : missing storage-class or type specifierse:\wokc++\繼承多態(tài)\test\base.h(18) : warning C4183: 'getName': member function definition looks like a ctor, but name does not match enclosing classE:\wokc++\繼承多態(tài)\test\test.cpp(11) : error C2628: 'base' followed by 'int' is illegal (did you forget a ';'?)E:\wokc++\繼承多態(tài)\test\test.cpp(15) : error C2248: 'setName' : cannot access private member declared in class 'base'e:\wokc++\繼承多態(tài)\test\base.h(25) : see declaration of 'setName'E:\wokc++\繼承多態(tài)\test\test.cpp(17) : error C2065: 'cout' : undeclared identifierE:\wokc++\繼承多態(tài)\test\test.cpp(17) : error C2248: 'getName' : cannot access private member declared in class 'base'e:\wokc++\繼承多態(tài)\test\base.h(15) : see declaration of 'getName'E:\wokc++\繼承多態(tài)\test\test.cpp(17) : error C2297: '<<' : illegal, right operand has type 'int *'E:\wokc++\繼承多態(tài)\test\test.cpp(19) : error C2664: '__thiscall base::base(const class base &)' : cannot convert parameter 1 from 'const int' to 'const class base &'Reason: cannot convert from 'const int' to 'const class base'No constructor could take the source type, or constructor overload resolution was ambiguousE:\wokc++\繼承多態(tài)\test\test.cpp(19) : error C2553: no legal conversion of return value to return type 'class base *'E:\wokc++\繼承多態(tài)\test\test.cpp(20) : warning C4508: 'main' : function should return a value; 'void' return type assumed各位大師...我知道 ..我*char getName(){return *name;}錯了..麻煩指點下應該怎么寫
查看完整描述

3 回答

?
函數(shù)式編程

TA貢獻1807條經(jīng)驗 獲得超9個贊

#include<iostream>
using namespace std;

class base
{
private:
int id;
char *name;
public: //下面的成員函數(shù)不應該私有,應該公有,才能在main里使用
int getId()
{return id;}
char *getName() //*char getName()改為char *getName()
{return name;} //return *name;改為return name;
void setId(int id)
{this->id=id;}
void setName(char *name)
{this->name=name;}
}; //類的最后掛號后面應該加分號,不能丟,切記

int main(int argc, char* argv[])
{
base b;
char *p="xxxxx";
b.setName(p);
cout<<b.getName()<<endl;
return 0;
}

另外再補充點,不知道對樓主有沒有用,希望對你有幫助。
上面程序的改寫:

#include<iostream>
#include<string> //string頭文件
using namespace std;

class base
{
private: //把私有成員與下面成員函數(shù)里的參數(shù)區(qū)分,可以不利用指針,更方便
int ID; ////
string Name; //利用string類型,加頭文件#include<string>
public:
int GetID()
{return ID;} ////
string GetName()
{return Name;} ////
void SetID(int id)
{ID=id;} //私有成員和函數(shù)參數(shù)區(qū)分,這樣就可以不用到指針
void SetName(string name)
{Name=name;} //私有成員和函數(shù)參數(shù)區(qū)分,這樣就可以不用到指針
};

int main(int argc, char* argv[])
{
base b;
string p="xxxxx";
b.SetName(p);
cout<<b.GetName()<<endl;
return 0;
}


查看完整回答
反對 回復 2022-06-06
?
拉莫斯之舞

TA貢獻1820條經(jīng)驗 獲得超10個贊

#include <iostream>
using namespace std;
class base
{
private:
int id;
public:
char *name;//這個不能私有

int getId()
{
return id;
}
char *getName()//這里錯了
{
return name;//這里錯了
}

void setId(int id)
{
this->id=id;
}

void setName(char *name)
{
this->name=name;
}
};

int main(int argc, char* argv[])
{
base b;
char *p="xxxxx";
b.setName(p);

cout<<b.getName();
system("pause");
return 0;
}


查看完整回答
反對 回復 2022-06-06
?
人到中年有點甜

TA貢獻1895條經(jīng)驗 獲得超7個贊

char* getName()
{
return name;
}

查看完整回答
反對 回復 2022-06-06
  • 3 回答
  • 0 關注
  • 280 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號