#c #syntax
#c #синтаксис
Вопрос:
Мне любопытно, можно ли предоставить какие-либо разъяснения по множеству синтаксиса конструктора, которые есть в C . Я видел конструкторы, объявленные внутри классов и вне классов. Я также видел инициализацию переменных с помощью более распространенных методов, таких как x = y
или this-> x = y
, но также и через списки инициализации, например Point(int i = 0):x(i) {}
.
Мой вопрос заключается в том, существуют ли определенные ситуации, когда более целесообразно использовать один стиль конструктора над другим или объявлять конструктор внутри или вне класса. Является ли их какое-то общепринятое руководство по синтаксису для этого?
Комментарии:
1. Мой совет, всегда используйте синтаксис инициализации члена, т.е:
Point(int i = 0):x(i) {}
2. Конструкторы всегда являются частью класса (поэтому они всегда находятся внутри класса). Теперь, если вы предоставите отдельное объявление в классе, затем реализуйте определение в другом файле, который просто зависит от того, что легче читать (простой встроенный в классе, сложный в отдельном файле).
Ответ №1:
Я считаю, что, как правило, хорошей идеей является наличие деструкторов конструкторов и прототипов других методов внутри самого класса, если они принадлежат к одному классу. Это более эффективно и более удобно для программистов. например: я бы сделал что-то вроде этого:
class decl ....{
private:
members var.. methods' prototype..
public:
decl(); default cons prototype
decl(type para....); parameterized cons prototype;
~decl();
some methods' prototypes..
};
Затем вы всегда можете продолжить и использовать их, принимая аргумент, чтобы присвоить значение мгновенной переменной
, такой как это:
decl::decl(can user the same name or different ){
if using the same name
this -> sameName = sameName;
otherwise,
instant data variable name = assign the value,
}
Комментарии:
1. Я считаю себя экспертом в C , но… Я не совсем понимаю, что вы пытаетесь здесь сообщить