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)
|
|