#include <iostream>
using namespace std;
class station{
int n;
float *p;
public:
station(){};
station(const station &ob){cout<<"Copy";}
station operator=(station* a){cout<<"Nai";}
~station(){cout<<"Destructor";}
static float counter;
friend istream &operator>(istream &stream, station &d);
int &getN(){return n;};
float *&getP(){return p;};
void* operator new[](size_t size);
void* operator new(size_t size){station *a;a=::new station;return a;};
};
void* station::operator new[](size_t size){
station* a;
a=(::new station[size]);
int b;
b=(size)/(sizeof(station));
for(int i=0;i<b;i++){
cin>a[i];
}
cout<<a;
return a;
}
float station::counter;
istream &operator>(istream &stream, station &d){
cout<<"Dwse arithmo deigmatwn";
int num;
stream>>num;
d.getP()=new float[num];
d.getN()=num;
for(int i=0;i<num;i++){
stream>>d.getP()[i];
}
return stream;
}
int main(){
station* a;
a=new station[2];
cout<<a;
return 0;
}
こんにちは皆、 これは私の最初の投稿ですので、私の間違いを許してください。新しい返信が間違っているアドレス
新しい演算子と抽出子のオーバーロードで新しいクラスを作成しました。私の問題は、newによって返されるアドレスが、cout<<a
が記述されている行で見ることができるように、オーバーロードされた演算子の中にあるアドレスとは異なることです。しかし、私がデストラクタを消去すると、すべて正常になります。何か案は?
入力ストリームに対してより大きい比較演算子をオーバーロードするのはなぜですか? –
私はちょうどオーバーロード演算子で運動しています。 –
それで、あなたは間違ったことをする方法を行使していますか? –