मैं विजुअल स्टूडियो 2019 का उपयोग कर रहा हूं, और जब मैंने सी ++ में अपनी पहली कक्षा बनाई, तो एक त्रुटि हुई। जब मैंने #include <Windows.h> को हटा दिया तो यह गायब हो गया। मेरा प्रश्न है, Windows.h C++ कक्षाओं से क्यों टकराता है, और क्या दोनों का उपयोग करना संभव है (मुझे पूरा यकीन है कि यह है)।

#include <iostream>
#include <locale>
using std::cout;
using std::cin;

class Rectangle {
public:
    Rectangle() = default;

    Rectangle(double width, double height)
        : width_{ width }, height_{ height }
    {}
    double Width() const { return width_; }
    double Height() const { return height_; }

    double Area() const {
        return width_ * height_;
    }
    double Perimeter() const {
        return 2 * (width_ + height_);
    }
    void Scale(double scaleFactor) {
        width_ *= scaleFactor;
        height_ *= scaleFactor;
    }
private:
    double width_{};
    double height_{};
};

void printInfo(const Rectangle & r) {
    cout << "Width" <<r.Width() << '\n';
    cout << "Height" << r.Height() <<   '\n';
    cout << "Area" << r.Area() << '\n';
    cout << "Per" << r.Perimeter() << '\n';
}

int main() {
    setlocale(LC_ALL, "pl_PL.UTF8");
    Rectangle rect;
}
2
DesantBucie 15 अप्रैल 2020, 00:22

1 उत्तर

सबसे बढ़िया उत्तर

Windows.h Rectangle को एक मुफ़्त फ़ंक्शन के रूप में परिभाषित करता है, देखें यहां.

समाधान: अपनी कक्षा का नाम बदलें या इसे अपने नामस्थान में रखें।

9
Paul Sanders 14 अप्रैल 2020, 21:29