Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Lotles
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167

Создание класса;что такое ::

13.05.2010, 15:28. Показов 1102. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Чем переменная f отличается от k
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <conio.h>
using namespace std;
class Fraction{
private:
    void Fraction::fractX(){
        Fraction fractX;
        fractX.k=10;
        fractX.f=20;
    }
public:
    int Fraction::k;
    int f;
};
int main(){
Fraction fract1;
fract1.k=100;
fract1.f=5;
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2010, 15:28
Ответы с готовыми решениями:

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном из cpp файлов(их несколько). Можно ли, как-то, использовать...

Что такое интерфейс класса
День добрый. Возник спор темой которого было, что собственно можно назвать интерфейсом класса. Хотелось бы услышать мнение или (что...

Что такое указатель на член класса?
Что такое указатель на член класса?

7
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
13.05.2010, 15:32
Цитата Сообщение от Lotles Посмотреть сообщение
void Fraction::fractX(){
Fraction fractX;
fractX.k=10;
fractX.f=20;
}
так можно описывать вне объявления класса, компилятор сказал на это:
C++
1
2
error: extra qualification 'Fraction::' on member 'fractX'
compilation terminated due to -Wfatal-errors.
0
 Аватар для Lotles
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
13.05.2010, 15:36  [ТС]
У меня работает нормально
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
13.05.2010, 15:53
даже если и работает, то устоявшиеся традиции с++ подразумевают вот такого рода код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Fraction{
private:
  void fractX();
public:
  int k;
  int f;
};
 
void Fraction::fractX(){
  Fraction fractX;
  fractX.k=10;
  fractX.f=20;
}
смысл fractX не прозрачен, может подразумевалось подобие конструктора?
1
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
13.05.2010, 15:55
Внутри объявления класса можно писать и без уточнения
C++
1
2
3
4
5
6
class Widget
{
   void Func() 
   {
   }
};
C++
1
2
3
4
5
6
class Widget
{
   void Widget::Func()
   { 
   }
};
Это будет значить одно и тоже. однако если выносить реализацию за объявление класса, то это обязательное условие:
C++
1
2
3
4
5
6
7
8
class Widget
{
   void Func();
};
 
void Widget::Func()
{
}
1
 Аватар для Lotles
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
13.05.2010, 20:11  [ТС]
Цитата Сообщение от fasked Посмотреть сообщение
Внутри объявления класса можно писать и без уточнения
C++
1
2
3
4
5
6
class Widget
{
   void Func() 
   {
   }
};
C++
1
2
3
4
5
6
class Widget
{
   void Widget::Func()
   { 
   }
};
Это будет значить одно и тоже. однако если выносить реализацию за объявление класса, то это обязательное условие:
C++
1
2
3
4
5
6
7
8
class Widget
{
   void Func();
};
 
void Widget::Func()
{
}
Какой смысл в описании функции за пределом класса ?
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
13.05.2010, 20:46
Цитата Сообщение от Lotles Посмотреть сообщение
Какой смысл в описании функции за пределом класса ?
Для меня это просто удобно, интерфейс класса не выглядит заграможденным, хорошо читается.
Еще так можно скрывать реализацию =)
1
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
13.05.2010, 23:17
Цитата Сообщение от Lotles Посмотреть сообщение
Какой смысл в описании функции за пределом класса ?
есть несколько причин:
1. разделяет описание и реализацию, тот кто пользуется библиотекой не должен знать весь код библиотеки, только описание
2. описание компилируется один раз, а объявление может использоваться много раз
3. если класс реализован в библиотеке, то объявление с описанием приведет к ошибкам из-за повторного объявления
4. увеличение скорости компиляции
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.05.2010, 23:17
Помогаю со студенческими работами здесь

Что такое глобальные и локальные объекты класса?
Что такое глобальние и локальные обекты класа. Напишыте пожалуста с примерами.

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

Как описать метод класса? Как двумя способами описать инлайнируемый метод класса? Что такое this?
Раздел 1. Строки: нужен фрагмент кода. Обязательно используйте функции для работы со строками. Как найти адрес последнего символа строки?...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru