我是编程新手,我无法弄清std :: << strong> >的含义。
实际上我想问一下 std :: 部分在这里做什么以及它表示什么?
答案 0 :(得分:1)
哦,你刚从C++
开始。
因此,让我们从std::
部分开始。这称为名称空间。命名空间有时会让人感到困惑,但它们非常有用。
命名空间只是一个小容器,可以将class
,enum
,sturct
和所有其他所有内容都放在一个地方。
它们为什么有用?
好吧,例如,如果您正在编写绘画程序并且该程序正在与图形交互,则两者都可能包含名为color
和point
的类。如果您没有名称空间,那么不可能!
然后是cout
部分。 cout
是std
命名空间中的实际类,有点像上面示例中的Color
类。因此,作为示例,下面是paint
和grahpics
的简化示例:
namespace paint {
class Point {
private:
Color color;
int x, y;
public:
Point(Color c, int xx, int yy) : x(xx), y(yy), color(c) {
}
// Continued code...
};
class Color {
private :
int red, green, blue;
public:
Color(int r, int g, int b) : red (r), green (g), blue (b) {
}
// Continued code...
};
}
和GUI:
namespace gui {
class Window {
private :
Point position;
int width, height;
Color background_color;
public:
Window(Point p, int w, int h, Color b) : position (p), width (w), height (h), background_color (b) {
}
};
class Color {
private:
Color_type c;
Point point;
public
enum Color_type {
red=0xff0000, green=0xff00, blue=0xff, white=~0x0, black=0x0
};
Color(Color_type cc, Point p) :c(cc), point(p) { }
// Continued code...
};
class Point {
private:
int x, y;
public:
Point(int xx, int yy) : x(xx), y(yy) {
}
// Continued code...
};
}
因此,如您所见,您可以拥有名称空间来封装具有相同名称的不同类。
如何使用它们容易:
您只需在名称空间前面添加名称空间的名称(例如paint::color
或gui::color
)。这是一个示例:
int main (void) {
paint::Point paint_p(Color(2,2,2), 55, 33);
p(55, 33);
// or
paint::Color paint_c(0, 0, 0); // Produces black;
gui::Color gui_c(gui::Color_type::black);
}
总而言之, <something>
是类名或变量名,或者是嵌套的名称空间(名称空间内的名称空间),但是对于cout
,它是是类的名称。
我希望这能解释它。