2016-03-22 25 views
-1

yüzden get/set işlevleri kullanmaya çalışıyorum ve ben kullanarak varsayılan Astring değişen bir sorun yaşıyorum çöküyor fuction ayarlayın. Bununla çalıştırmayı denediğinizde sonra Program çöker:Fonksiyon {// kod} kümesi fuction kullanarak değiştiremezsiniz program

#include <iostream> 
#include <string> 
using namespace std; 

class Example{ 

private: 

    string m_Astring; 

public: 

    Example() 
    { 
     m_Astring="123456789012"; 
    } 


    string setAstring(string Astring){m_Astring=Astring;} 

    string getAstring(){return m_Astring;} 

}; 

int main(){ 

Example test; 
test.setAstring("250687354221"); 
cout<<test.getAstring()<<endl; 

return 0; 
} 
+0

İşte ' 'n'' olduğunu. Lütfen onu * fuctions * 'a ekleyiniz, böylece uygun * fu ** n ** ctions * olurlar. –

+1

Programın daha eski bir sürümünü çalıştırıyor olmanız gerekir, çünkü bu bile derleme yapmaz. – juanchopanza

+0

İlginç, Windows 7 üzerinde Cygwin G ++ 5.3.0 kullanıyorum. Program kendi kendine çalıştırıldığında iptal eder. GDB (Cygwin 7.10.1-1) kullanılırken program iptal edilmez. Hata ayıklayıcısını tam hızda, kilitlenmeden yok. Tek hata ayıklayıcı ile adım attı, sorun yok. –

cevap

2

sorun buradadır: Bu işlevinden şey asla iade çünkü

string setAstring(string Astring){m_Astring=Astring;} 
^^^^^^            ^^^^ 
return a string         no return of string 

Programınız çöküyor ve bu tanımlanmamıştır.

(I varolmayan dönüş değeri yok olduğunda çökme meydana şüpheli, ama bu teyit etmedi.)

+0

[Burada] (http://ideone.com/aPzhNU) bununla bir örnektir. – callyalater

+0

Visual Studio 2010 ile derlediğimizde, aşağıdaki hatayı alıyorum: 'error C4716: 'Example :: setAstring': bir değer döndürmelidir '. –

+0

İşlev dönüş tipi, "void" olarak değiştirilmelidir. –

İlgili konular