係統粉 > 電腦問答 > 其他問答

已解決幫忙一下,看看這段代碼(C++)有什麼錯誤

提問者:夏夜微涼夜未央  |  瀏覽次  |  提問時間:2017-01-27  |  回答數量:5

幫忙一下,看看這段代碼(C++)有什麼錯誤 斑竹在不?麻煩看一下,急啊,謝謝

已有5條答案
溜道閑人

溜道閑人

回答數:71  |  被采納數:149

把ptr=ptr->next下移一行
2017-01-27 16:11:08
讚 7
yrybaby

yrybaby

回答數:217  |  被采納數:64

下移一行,是不是變成這樣?
while(ptr) //輸出基類a中的getname()
{
ptr=ptr->next;
cout<<ptr->getname()<<endl;}
}
做了,還是不行啊...
2017-01-27 20:50:20
讚 21
軒哥8686

軒哥8686

回答數:157  |  被采納數:147

隻下移一行,其它行都不能動
{
cout<<ptr->getname()<<endl;ptr=ptr->next;}
2017-01-27 17:19:40
讚 15
愛露米娜love

愛露米娜love

回答數:219  |  被采納數:132

好了!問題解決了,謝謝四樓的
2017-01-27 17:03:48
讚 21
zz_自娛自樂

zz_自娛自樂

回答數:104  |  被采納數:118

#include<iostream.h>
#include<string.h>
#include<iomanip.h>

class a //定義a類
{public:
a(char*); //a的構造函數

virtual ~a(); //解析函數

const char *getname()const ;//返回name值

a *next; //用於構造鏈表

virtual void print(); //輸出

protected:
char *name;};

a::a(char *k) //定義構造函數
{name=new char[strlen(k)+1];
strcpy(name,k);}

a::~a() //定義解析函數
{delete[]name;}

const char*a::getname()const //getname的定義
{return name;}

void a::print() //輸出定義
{cout<<name<<endl;}

class b:public a //類b繼承類a
{public:
b(char*,char*); //b的構造函數

~b(){};

void setbnumber(char*);

virtual void print();

protected:
char *bnumber;
};

b::b(char*k,char*str):a(k)
{setbnumber(str);}

void b::setbnumber(char*str)
{bnumber=new char[strlen(str)+1];
strcpy(bnumber,str);
}

void b::print()
{a::print();
cout<<bnumber<<endl;

}

void addfront(a *&h,a *&t)
{t->next=h;h=t;}


void showb()
{a*emphead=NULL,*ptr;

ptr=new b(\"nihao\",\"yes\"); //為構造函數賦值

addfront(emphead,ptr); //加到鏈表中

ptr=new b(\"hello\",\"no\"); //再賦值

addfront(emphead,ptr); //再加到鏈表中

ptr=emphead;

while(ptr) //輸出基類a中的getname()
{ptr=ptr->next;
cout<<ptr->getname()<<endl;}
}



void main()
{showb();}

在vc6.0中檢驗不出錯誤,可就是執行到一半,輸出第一個\"nihao\",\"yes\"後就說什麼出現錯誤
調試後說錯誤出現在const char*a::getname()const{return name;}這裏,到底是怎麼回事,請高手指點一下。
2017-01-28 03:56:46
讚 10
相關問答
最新其他問答
解決方法