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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
#1

Накопились вопросы по разным темам. - C++

01.09.2011, 20:38. Просмотров 1122. Ответов 21
Метки нет (Все метки)

1) операция :: - это операция разрешения области действия или области видимости?
2) Чем отличается структура от класса? У структуры и у класса есть данные и функции. Да, у классов есть наследование, полиморфизм, инкапсуляция и т.д и т.п.. Это все?
Судя по моим малым знаниям, мне кажется, что структуру всегда можно заменить классом. Что такого есть в структуре, что нет у класса?
3) В объекте класса( в представителе класса ) есть указатель this, указывающий на этот объект.
Методы класса получают неявно этот указатель.
Допустим есть метод:
C++
1
void fun();
Тогда если раскрыть эту "неявность", то получится это?
C++
1
void fun( SomeClass *this );
А если есть метод:
C++
1
void fun1( int );
То будет так?
C++
1
void fun1( SomeClass *this, int );
Если все правильно я сказал, то можно передавать методам явно указатель, т.е
C++
1
void fun( SomeClass *this );
и
C++
1
void fun1( SomeClass *this, int );
?
4)Указатель this находится в объекте, тогда
допустим есть класс
C++
1
2
3
4
5
class SomeClass
{
public: int a;
private: int b;
};
тогда если раскрыть всю "неявность" указателя this, то будет так?
C++
1
2
3
4
5
6
7
допустим есть класс
class SomeClass
{
public: int a;
private: int b;
           const SomeClass *this;
};
5) Для того, чтобы использовать объекты cout,cin, надо "использовать пространство имен std"
Я знаю три способа:
- using namespace std; // самый простой
- using std::cout; using std::cin;
- непосредственно писать во всем коде перед cout и cin std::, т.е.
std::cin >> a;
std::cout << a;
Какой из способов лучше?

6)Инкапсуляция - это всего лишь скрытие реализации класса от клиентов, т.е. программистов, использующих этот класс? Скрытие реализации для того, что бы код клиентов не зависил от реализации, т.е. они должны знать только интерфейс класса(какие есть методы и что они делают)?

7) Функции в классах называют методами или по другому члены-функции.
Я читаю Дейтелов "Как программировать на С++".
В книгу везде пишут элемент данные и элементы функции, вместо членов класса и методов(членов функций). Может это корявый перевод на русский?
Просто такие термины я вижу только в этой книге.

PS Что еще вспомню, допишу.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
02.09.2011, 20:47     Накопились вопросы по разным темам. #21
Цитата Сообщение от Chelioss Посмотреть сообщение
Я читабельность кода и имел ввиду. Везде, где я видел, сперва пишут private, потом protected, дальше public. В книге наоборот.
В плане читабельности какой вариант лучше?
На вкус и цвет товарищей нет.

Каждый сам для себя решает. Лично я вначале всегда объявляю public методы. Это проще, так как пользователю вашего класса в первую очередь нужно видеть объявления конструкторов и других открытых методов. Реализация его может интересовать лишь в последнюю очередь. А так как люди обычно читают сверху вниз, то и распологать на мой взгляд public методы лучше сверху, то есть в начале.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2011, 20:49     Накопились вопросы по разным темам.
Еще ссылки по теме:

Шаблон функции сортировки массива структур по разным типам полей C++
Конструкторы с разным количеством параметров: найти ошибку в программе C++
C++ Нужно сравнить 2 строки с разным количеством нулей в конце
C++ Как сделать композицию классов разнесённых по разным файлам
Получить словесное наименование оценок по разным системам (5-ти, 12-ти, 100-бальной и буквенной) C++

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

Или воспользуйтесь поиском по форуму:
Alex1234
13 / 13 / 0
Регистрация: 11.02.2011
Сообщений: 55
02.09.2011, 20:49     Накопились вопросы по разным темам. #22
1) Как тебе нравится.
2) Каким Style Guide ты пользуешься.
Yandex
Объявления
02.09.2011, 20:49     Накопились вопросы по разным темам.
Ответ Создать тему
Опции темы

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