Доброе утро. Вопрос заключается в инициализации объекта. Его легко сделать так:
class MyClass {
char* data;
public:
inline MyClass(char* s) {
data = s;
};
}
MyClass Obj = "foo";
Но возможно ли сделать синтаксис инициализации (с теми же действиями), как это?
MyClass Obj[] = "foo";
Мне нужны скобки для совместимости с другим компилятором:/
Пробовали ли вы использовать список инициализации, используя {}?
MyClass Obj[] = {"foo"};
или
MyClass Obj[] = {"foo", "bar"};
new_char MyString[] = "foo"
. Но для GCC я не могу сделать typedef char new_char
, потому что typedef является его единственным синонимом, а компилятор GCC не имеет никакого значения между "char" и "new_char". И я не могу использовать некоторые перегруженные функции, которые работают только с "new_char" и не должны работать (например, сгенерировать исключение) с "char".
char*
к строковому литералу. Вы должны изменитьdata
наconst char*
. Что касается остальной части вопроса, не ясно, что вы ищете.