Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

why does it feel so bad? a.k.a. c++ kodu hatali calisiyor


wanderer

Öne çıkan mesajlar

asagidaki kodda cerebrate2 denen object in age ini yanlis (3 yerine -8627852 gibi bisey) veriyor. koddaki starcraftimsi replikler geyiktir eheha.

#include

class cat
{
public:
cat();
cat(cat&);
~cat();
int age ;
};

cat::cat()
{
age = 3;
cout << "Constructor called.n";
}

cat::cat(cat& somecat)
{
cout << "Copy constructor called.n";
}

cat::~cat()
{
cout << "BATTLECRUISER OPERATIONAL." << endl;
}

cat func1(cat);
cat* func2(cat*);

int main()
{
cout << "WAKE UP CEREBRATE. I AM OVERMIND, THE ETERNAL WILL OF THE SOUL. AND KNOW THAT YOU HAVE BEEN CREATED TO SERVE ME.n";
cat cerebrate;
cout << "Calling func1." << endl;
cat cerebrate2 = func1(cerebrate);
cout << cerebrate.age << " " << cerebrate2.age << endl;
cout << "Calling func2." << endl;
func2(&cerebrate);
cout << cerebrate.age << endl;
return 0;
}

cat func1(cat somecat) //pass-by-value
{
cout << "func1. Returning...n";
somecat.age = 2;
return somecat;
}

cat* func2(cat* somecat)//pass-by-reference
{
cout << "func2. Returning...n";
somecat->age = 2;
return somecat;
}[hline]W.A.N.D.E.R.E.R.: Wireless Artificial Neohuman Designed for Efficient Repair and Efficient Reasoning

[Bu mesaj wanderer1985 tarafından 14 June 2003 11:53 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

said:

#include
using namespace std;


main() icinde:
said:
cat cerebrate2;
cerebrate2 = func1(cerebrate);

diyince calisiyo sorunsuz.

ilk duzeltme C++ standartina uymasi icin.

ikincisiyse; anladigim kadariyla construct time 'da = operatorunu kullaninca farkli bi i$lem yapmasindan kaynaklaniyo.

senin yazdigin haliyle gcc 'de compile bile etmedi alet, ancak bu hale getirince compile etti zaten. kullandigin compiler ufak $eylere ses cikarmadigi icin gormemi$in sorunu[hline]wastiee
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...