Код: Выделить всё
struct Point
{
int x;
int y;
};
struct Size
{
int x;
int y;
};
Теперь давайте удалим структуру Size из исходного кода и вместо этого определите его, используя typedef, вот так:
Код: Выделить всё
typedef Point Size;
Теперь предположим, что мы есть такой шаблон класса:
Код: Выделить всё
template
class ConcreteError : public BaseError {
public:
ConcreteError () :BaseError(), error_msg() {}
ConcreteError (int errorCode, int osErrorCode, const std::string& errorMessage)
:BaseError(errorCode, osErrorCode, errorMessage){}
};
Код: Выделить всё
typedef ConcreteError FileError;
typedef ConcreteError NetworkError;
typedef ConcreteError DatabaseError;
А что, если мы сделаем вот так,
Код: Выделить всё
typedef ConcreteError FileError;
typedef ConcreteError NetworkError;
typedef ConcreteError DatabaseError;
PS: код шаблона этого класса взят отсюда:
Как создать производные классы из базового класса с помощью программирования шаблонов на C++?
Вообще-то, я понятия не имею, как компилятор генерирует объектный файл из исходного кода и как он обрабатывает имена классов, их члены, другие символы и все такое. Как он обрабатывает определения типов? Что он с этим делает,
Код: Выделить всё
typedef int ArrayInt[100];
Подробнее здесь: https://stackoverflow.com/questions/447 ... bject-file
Мобильная версия