Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=1118209&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 07:29:08 2016
Кодировка: Windows-1251
какая разница между использованием структур и классов - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 0 | 20 | 40 | 60 | 80 | 100 | 120 | показать все | след. страница
Danil
addict

Рег.: 28.09.2003
Сообщений: 699
Рейтинг: 4
  какая разница между использованием структур и классов
      07.05.2004 22:35
 

в vc++
ведь, как я понимаю они обладают одинаковыми возможностями... ну разве что кроме наследия, но оно мне сейчас не нужно и все что с ним связано...

Attila
R

Рег.: 18.12.2002
Сообщений: 16118
Из: ...вот именно там.
Рейтинг: 3169
  Re: какая разница между использованием структур и классов [re: Danil]
      07.05.2004 22:36
 

в c++ разница только по дефолтовым модификаторам доступа и наследования. У struct - public, у class - private



Кр-ть - с.т.!
DenK
титулярный советник

Рег.: 18.01.2004
Сообщений: 955
Из: Москва
Рейтинг: 125
  Re: какая разница между использованием структур и классов [re: Attila]
      07.05.2004 23:41
 

И еще есть какая-то тонкая разница, настолько тонкая, что я ее не помню...

ykpon
Carpal Tunnel

Рег.: 29.08.2002
Сообщений: 6503
Рейтинг: 222
  Re: какая разница между использованием структур и классов [re: DenK]
      08.05.2004 00:11
 

механизм конструкторов и деструкторов по умолчанию был создан именно для struct-ов

Attila
R

Рег.: 18.12.2002
Сообщений: 16118
Из: ...вот именно там.
Рейтинг: 3169
  Re: какая разница между использованием структур и классов [re: ykpon]
      08.05.2004 00:15
 

ну а разница-то в чем?...
я вот подозреваю, что если написал
struct X{int x;};
class Y{int y;}

то так уже не напишешь:
struct Y yyy;
class X xxx;



Кр-ть - с.т.!
ykpon
Carpal Tunnel

Рег.: 29.08.2002
Сообщений: 6503
Рейтинг: 222
  Re: какая разница между использованием структур и классов [re: Attila]
      08.05.2004 01:14
 

а как это к теме относится ?

я просто к тому что структура не может быть описана без конструктора/деструктора по умолчанию, а класс может.

Attila
R

Рег.: 18.12.2002
Сообщений: 16118
Из: ...вот именно там.
Рейтинг: 3169
  Re: какая разница между использованием структур и классов [re: ykpon]
      08.05.2004 01:27
 

Вот тебе класс и структура без конструктора по умолчанию...
code:

class A
{
public:
A(int, int){}
};

struct B
{
public:
B(int, int){}
};

int main()
{
B y;
A x;
}



Quote:


d:\Users\Sergey\printf_test\printf_test.cpp(19) : error C2512: 'B' : no appropriate default constructor available
d:\Users\Sergey\printf_test\printf_test.cpp(20) : error C2512: 'A' : no appropriate default constructor available





ты про такое?.. и в чем разница?



Кр-ть - с.т.!
Kai

Рег.: 25.10.2002
Сообщений: 8251
Рейтинг: 818
  Re: какая разница между использованием структур и классов [re: ykpon]
      08.05.2004 01:32
 

Можешь привести ссылку на стандарт ?

Контраргумент:
code:

struct A {
int a_;
A(int a) : a_(a) {};
};
main() {
A a;
}


code:
$ gcc 1.cpp -o 1
1.cpp: In function `int main()':
1.cpp:6: error: no matching function for call to `A::A()'
1.cpp:1: error: candidates are: A::A(const A&)
1.cpp:3: error: A::A(int)


gcc (GCC) 3.3.3 (Debian 20040429)

Kai

Рег.: 25.10.2002
Сообщений: 8251
Рейтинг: 818
  Re: какая разница между использованием структур и классов [re: Attila]
      08.05.2004 01:32
 



Attila
R

Рег.: 18.12.2002
Сообщений: 16118
Из: ...вот именно там.
Рейтинг: 3169
  Re: какая разница между использованием структур и классов [re: Kai]
      08.05.2004 01:35
 

у меня ms cl 13.10.3077



Кр-ть - с.т.!
ykpon
Carpal Tunnel

Рег.: 29.08.2002
Сообщений: 6503
Рейтинг: 222
  Re: какая разница между использованием структур и классов [re: Kai]
      08.05.2004 01:50
 

с концептуальной точки зрения существует разница:
для структуры обязательно наличие по умолчанию:
конструктора, деструктора, оператора присванивания и конструктора копирования, потому как если этого не будет описано
то семантика типа данных "структура" изменится.
Для класса же эти обязательные условия не важны.

с точки зрения реализации в языке С++ особой разницы нет, поэтому были введены понятия конструкторов
деструктров и т.д. по умолчанию дабы можно было реализовать стандартную "структуру" языка С.



Palex
old hand

Рег.: 24.10.2002
Сообщений: 862
Из: где только черти не носят...
Рейтинг: 35
  Re: какая разница между использованием структур и классов [re: Attila]
      08.05.2004 01:53
 

О чем спор-то, господа? Насколько мне известно, хотя бы по части трактования структур и классов cl и gcc не расходятся...
А Atilla с самого начала все сказал правильно.



В теории, между теорией и практикой разницы нет. На практике она есть.
ykpon
Carpal Tunnel

Рег.: 29.08.2002
Сообщений: 6503
Рейтинг: 222
  Re: какая разница между использованием структур и классов [re: Palex]
      08.05.2004 01:58
 

а никто и не спорит
я просто дополнил атиллу

Attila
R

Рег.: 18.12.2002
Сообщений: 16118
Из: ...вот именно там.
Рейтинг: 3169
  Re: какая разница между использованием структур и классов [re: ykpon]
      08.05.2004 02:01
 

ну это скорее концептуальная поправка... чем структура Си или структура Си++ ведущая себя как структура Си, отличается от класса Си++



Кр-ть - с.т.!
ykpon
Carpal Tunnel

Рег.: 29.08.2002
Сообщений: 6503
Рейтинг: 222
  Re: какая разница между использованием структур и классов [re: Attila]
      08.05.2004 02:03
 

С++ структура - это класс и без структур хорошо.

нужно было иметь возможность заставить пользователя не менять семантику типа данных "С-структуры", сделать это можно было введя ограничения. И все это дерьмо только из соображений совместимости с С. Без этих изъебов с совместимостью получился бы намного красивый, гибкий и простой язык программирования

Attila
R

Рег.: 18.12.2002
Сообщений: 16118
Из: ...вот именно там.
Рейтинг: 3169
  Re: какая разница между использованием структур и классов [re: ykpon]
      08.05.2004 02:07
 

да какое ограничение? есть дефолтовый конструктор. Пока в классе/структуре никакого конструктора нет (а в Си-шных структурах это так), он есть, как только ты какой-либо конструктор объявляешь - он пропадает. Это касается как класса, так и структур Си++. Так что синтаксической разница в ключевых словах struct и class - только в public/private



Кр-ть - с.т.!
ykpon
Carpal Tunnel

Рег.: 29.08.2002
Сообщений: 6503
Рейтинг: 222
  Re: какая разница между использованием структур и классов [re: Attila]
      08.05.2004 02:12
 

но для классов такое понятие как что то там по умолчанию не нужно( и более того лишнее ), оно было добавлено чтобы можно было на основе классов реализовывать С-структуру.

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

Attila
R

Рег.: 18.12.2002
Сообщений: 16118
Из: ...вот именно там.
Рейтинг: 3169
  Re: какая разница между использованием структур и классов [re: ykpon]
      08.05.2004 02:13
 

очень может быть... надо бы в соответствующую книжку Страуструпа глянуть...
кстати вот в шарпе структуры и классы принципиально различаются.



Кр-ть - с.т.!
ykpon
Carpal Tunnel

Рег.: 29.08.2002
Сообщений: 6503
Рейтинг: 222
  Re: какая разница между использованием структур и классов [re: Attila]
      08.05.2004 02:26
 

а

S300
Pooh-Bah

Рег.: 15.12.2002
Сообщений: 2499
Рейтинг: -10
  Re: какая разница между использованием структур и классов [re: Danil]
      08.05.2004 11:48
 

С и С++ - ацтой

Вам устное замечание. Флуд в тематическом разделе.



Редактировал Dimka_ (09.05.2004 01:43)
Страницы: 0 | 20 | 40 | 60 | 80 | 100 | 120 | показать все | след. страница

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

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

Печать темы
>>
Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в