Я новичок в C++ languge, и я знаком с языком java.C++ Поведение конструктора
в Java-мире, код выглядит нормально, но не в C++.
может кто-нибудь объяснить, почему оба конструктора называются?
class Position {
public:
Position(void)
{
std::cout<<"defualt constructor\n";
}
Position(unsigned int row,unsigned int col)
{
std::cout<<"two Arguments constructor\n";
row_index = row;
col_index = col;
}
private:
unsigned int row_index;
unsigned int col_index;
};
class Tool
{
public:
Tool(char Team,unsigned int row,unsigned int col)
{
pos = Position(row,col);
team = Team;
}
std::string To_string()
{
std::string str = "team: ";
str+= team;
str+= " pos: ";
str+= pos.To_string();
return str;
}
char Get_team()
{
return team;
}
private:
Position pos;
char team; // A or B
};
int main(void)
{
Tool t = Tool('A',1,3);
return 0;
}
я намерен призвать к конструктору двумя аргументами
ВЫВОД:
Defualt конструктор
два Аргументы конструктора
Код * is * ok на C++. Проблема в том, что вы используете Java в качестве модели для понимания и написания кода на C++. Не делай этого. – PaulMcKenzie