-3

まず、なぜ私はこれをやろうとしているのか...私はプログラミングを学ぼうとしていて、このステップを理解することは私をさらに助けると思います. だから助けてください。いくつかの言語で int を使用して実行できるように...

int x;

x=2;

どうすればこれを行うことができますか:

abc x;

x=2;

これを埋める

クラスabc{

//「そこから作成されたオブジェクトを、その方法で値を割り当てることができるようにするには、ここで何をすればよいでしょうか... abc(2) とは異なります。これはできます。」

}

解決:

// Example program
#include <iostream>
#include <string>

class ABC {
    private:
        int x;
    
    public:
        
        int getX() const  {
            return this->x;
        }
        
        ABC(int y) {
         this->x = y;
        }
    

        friend std::ostream& operator <<(std::ostream& outputStream, const ABC& p);
        
    
        ABC operator=(const int &b) {
            this->x = b;
            return this->x;
        }
};

std::ostream& operator <<(std::ostream& outputStream, const ABC& p){
    outputStream << p.getX();
    return outputStream;
}
        

int main() {
    ABC s = 1;
    std::cout << s << "\n";

    s = 4;
    std::cout << s << "\n";

    return 0;
}
4

2 に答える 2

1

少なくとも C++ では、引数が 1 つのコンストラクターで暗黙的です。JavaScript では、それは不可能です。C++:

class SomeClass {
public:
    int x;

    SomeClass(int x) {
        this->x = x;
    }
};

int main(int argc, char *argv[]) {
    SomeClass s = 5;

    cout << s.x << "\n"; // 5

    s = 17;

    cout << s.x << "\n"; // 17

    return 0;
}

これがデモです。

于 2012-04-08T02:16:19.207 に答える
0

オブジェクトはそのようには機能しません。int はプリミティブ型であり、7 はプリミティブ型であるため、int を 7 に割り当てることができます。オブジェクトが異なります。オブジェクトは、同じタイプのオブジェクトにのみ割り当てることができます。7 はオブジェクトではありません。単なる数字です。

オブジェクトは、インスタンス変数とメソッドのコレクションです。これにより、単なるビットの集まりである int などのプリミティブ型に割り当てることができなくなります。オブジェクトを割り当てることができるのは、同じ型のオブジェクト、またはその型にキャストされたオブジェクトだけです。

于 2012-04-08T02:26:05.673 に答える