Форум программистов, компьютерный форум CyberForum.ru

Объяснение моментов - C++

Восстановить пароль Регистрация
 
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
28.10.2010, 12:49     Объяснение моментов #1
1. Microsoft Visual Studio 2010, в ниже приведённом коде появляется ошибка следующего вида:
error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class matr
{
public:
 matr(void);
 virtual ~matr(void);
private:
 int iCol;
 int iRow;
 Cell** ce_arr;
 
public:
 
 void get_col(char* str);
};
2. Второй вопрос:
Объясните, пожалуйста, что за неявное преобразование происходит (char[] в String?). Если char[] преобразовывается в String, то создаётся объект const, но у нас он объявлен следующим образом,
подобно
C++
1
POINT& POINT::operator=(POINT& rhs) {}
, где const не указан.
Пожалуйста, объясните последовательно, что будет происходить, почему будет ошибка?
C++
1
2
String S;
S=“This is S”; //что аналогично такому S.operator=(“This is S”)
Аргумент справа имеет тип char[], а вовсе не String. В таком случае неявного преобразования типов компилятор создаст временный объект типа String (с помощью его конструктора) для передачи в качестве аргумента. Но компилятор всегда создает временные объекты как const, поскольку это предотвращает случайную передачу временного объекта в функцию, которая модифицирует аргументы. Такой вариант просто не должен компилироваться, так как произойдет попытка передать объект с const в функцию operator=, у которой соответствующий аргумент был объявлен без const.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2010, 12:49     Объяснение моментов
Посмотрите здесь:

объяснение C++
Разъясните пару моментов по теории C++
C++ Какой из моментов времени был в эти сутки раньше
Не понятно пару моментов C++
Поясните, пожалуйста, несколько моментов про выделение памяти C++
C++ Объяснение программы
C++ Объяснение
C++ Объяснение указателя

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru