Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Про то как и где описывать функции, и о хорохих манерах 
:(
    Опции темы
Logree
Дата 8.9.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: 1
Всего: 2



Вопрос в следующем... В С++ можно так 

Код

class ssalc{
 public:
          func1(var0);
 private:
            int var1;
            int var2
};
 ssalc::func1(var0) {
   var1+=var2;
 }


а можно и вот так
Код

class ssalc{
 public:
          func1(var0){
             var1+=var2;
          }
 private:
            int var1;
            int var2
};

есть ли какая разница?

ещё я понял что оператор this опускается... но вот одо ли тоже ssalc.func1(var);
и ssalc->func1(var); если да то есть ли принципиальная разница?



--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
Fazil6
Дата 8.9.2007, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(Logree @  8.9.2007,  19:55 Найти цитируемый пост)
есть ли какая разница?

второй вариант позволяет по возможности делать func1 встраиваемой (inline) , но возвращаемый тип лучше указывать. 
Цитата(Logree @  8.9.2007,  19:55 Найти цитируемый пост)
ещё я понял что оператор this опускается... но вот одо ли тоже ssalc.func1(var);и ssalc->func1(var); если да то есть ли принципиальная разница?

а это вообще бред какой-то...
PM MAIL   Вверх
Любитель
Дата 8.9.2007, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(Fazil6 @  8.9.2007,  20:16 Найти цитируемый пост)
но возвращаемый тип лучше

Обязательно. smile Это не Си...

Цитата(Fazil6 @  8.9.2007,  20:16 Найти цитируемый пост)
второй вариант позволяет по возможности делать func1 встраиваемой

1. Конечно, можно и просто явно написать inline smile
2. При разделении определения и реализации первый способ явно не пойдёт smile

Цитата(Logree @  8.9.2007,  19:55 Найти цитируемый пост)
но вот одо ли тоже ssalc.func1(var);и ssalc->func1(var); если да то есть ли принципиальная разница?

Есть. Если ssalc - объект, то первое вызов метода, а второе... тоже вызов метода, но только при наличии перегруженного оператора -> и соотв. метода в классе, указатель на к-рый возвращает этот оператор (возможно, конечно, применение данный фразы более одного раза smile ). Если ssalc - указатель на объект, то первое впринципе не допустимо. В твоём коде ssalc вовсе класс smile


--------------------
PM MAIL ICQ Skype   Вверх
Logree
Дата 8.9.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: 1
Всего: 2



неправильно написал поэтому многие меня не поняли...

Цитата

но возвращаемый тип лучше указывать. 


да я просто забыл...

Цитата

ещё я понял что оператор this опускается... но вот одо ли тоже ssalc.func1(var);
и ssalc->func1(var); если да то есть ли принципиальная разница?


точнее...

Код

ssalc object;
object.func1(var); и object->func1(var);

но все равно не понял 
Цитата

а второе... тоже вызов метода, но только при наличии перегруженного оператора -> и соотв. метода в классе, указатель на к-рый возвращает этот оператор


что есть перегруженный оператор ->




--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
Любитель
Дата 8.9.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(Logree @  8.9.2007,  21:20 Найти цитируемый пост)
что есть перегруженный оператор ->

Читаем учебник smile

Если ещё не дошёл до перегрузки операторов - можешь считать, что точка для объектов или ссылок на них, стрелка - для указателей smile


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.