-3

首先我为什么要这样做……嗯,我正在尝试学习编程,并认为理解这一步将进一步帮助我。所以请帮忙。就像 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++ 中,它隐含在单参数构造函数中。在 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 回答