Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Kr
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 35
#1

Структура или класс - C++

29.03.2013, 20:45. Просмотров 1035. Ответов 23
Метки нет (Все метки)

Подскажите, пожалуйста, своими словами, что такое структура и что такое класс. В чем отличие и как их использовать?
У меня есть двумерный массив, проходя по которому надо будет присваивать метки элементам массива. Т.е. смотрю текущее значение массива и сравниваю с соседами слева и справа, если значения совпадают то всем трем ячейкам надо присвоить одну метку. Полагаю, что здесь нужна структура или класс, но не знаю как их использовать! Подскажите с примером желательно!
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2013, 20:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структура или класс (C++):

Требуется класс, делегат, перечисление, интерфейс или структура - C++
помогите понять в чем тут всё таки ошибка, все попытки исправить самостоятельно были безрезультатны... using System; using...

Класс, структура - C++
есть классы class A { public: char ch; int a, b; double c; };

Структура и класс - C++
Доброго времени суток! Имеется задача: создать класс для работы с КАРТОТЕКОЙ КНИГ. Класс хранит информацию: название, имя автора, издание...

структура и класс - C++
здравствуйте, мне нужно рганизовать структуру Point с float полями x,y, организовать класс Triangle с Point полями a,b,c и функцией...

Вложенная структура в класс - C++
Привет всем, пишу шаблонный класс - кольцевой двунаправленный список, вообщем объявил структуру Node в классе: template <class T>...

Получается структура в С++ - это класс? - C++
Элементами или полями структуры могут быть переменные, массивы, ранее определенные структуры. Функции не могут быть полями структуры (В...

23
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.03.2013, 23:28 #16
Kr, вы определитесь, что вам нужно... Чтобы работать с матрицами, класс создавать необязательно.

Добавлено через 45 секунд
Класс вам зачем нужен?
0
Kuzia domovenok
2030 / 1874 / 168
Регистрация: 25.03.2012
Сообщений: 6,451
Записей в блоге: 1
29.03.2013, 23:32 #17
Цитата Сообщение от alsav22 Посмотреть сообщение
Это, при объявлении класса, как понять?
так понять, что я не глядя скопировал это из кода ТС. Виноват.

Не по теме:

хотя вроде в каком-то новом стандарте так можно. Или нет... я так не делал никогда.

0
Kr
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 35
29.03.2013, 23:32  [ТС] #18
я это понимаю. я же сказала, что мне нужно, чтобы я могла определенному элементу двумерного массива присваивать метку. У меня есть двумерный массив, проходя по которому надо будет присваивать метки элементам массива. Т.е. смотрю текущее значение массива и сравниваю с соседами слева и справа, если значения совпадают то всем трем ячейкам надо присвоить одну метку.
как я могу запоминать метки конкретных элементов и потом к ним обращаться без использования класса или структуры???
0
Kuzia domovenok
2030 / 1874 / 168
Регистрация: 25.03.2012
Сообщений: 6,451
Записей в блоге: 1
29.03.2013, 23:34 #19
Цитата Сообщение от go Посмотреть сообщение
Похоже Вы меня не поняли.
Не не не,
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
в классах спецификатор доступа по умолчанию public
я имел в виду, что спецификатор доступа у структур по умолчанию public и для членов и при наследовании.
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.03.2013, 23:43 #20

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Не по теме:
хотя вроде в каком-то новом стандарте так можно. Или нет... я так не делал никогда.
go подсказал, что в С++11. Сам не знал...



Добавлено через 6 минут
Пока ошибка синтаксиса:
Цитата Сообщение от Kr Посмотреть сообщение
if(i!==0 || j!==0)
0
Crafty
19 / 3 / 1
Регистрация: 29.03.2013
Сообщений: 8
29.03.2013, 23:45 #21
Kr, как вариант можно создать дополнительный массив такой же размерности для хранения меток.
Или можно создать двумерный массив с элементами в виде структуры значение + метка.
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.03.2013, 23:52 #22
Цитата Сообщение от Kr Посмотреть сообщение
как я могу запоминать метки конкретных элементов и потом к ним обращаться без использования класса или структуры???
Может тогда создать сруктуру для двух индексов (i, j). Потом создать массив таких стуктур и в нём запоминать индексы элементов, которым присвоена метка?

Добавлено через 3 минуты
Впрочем, в таком случае, метки вообще не нужны. Просто запоминаете индексы нужных элементов.
0
supra7sky
15 / 15 / 1
Регистрация: 07.02.2013
Сообщений: 123
30.03.2013, 00:03 #23
Как все запущенно...)) и делается вообще в слепую. Сначала прочтите статью по классам или структурам (без разницы), а еще лучше последовательно изучайте язык по книжке.
Например Г. Шилдт - Самоучитель С++ (Не пугайтесь фразы в ней что она не для новичков. Умения писать линейные программы достаточно).

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

Никакие члены класса не могут быть инициализированы!!! Класс не занимает места в памяти и не может принимать какие либо значения. Это тип объекта. А вот созданный объект уже можно инициализировать и делать с ним все что можно делать с переменной.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class My
{
private:
 int age;
 char name[15];
public:
 void Set ();
 void Get ();
};
void My::Set ()
{
 cin >> age;
 cin >> name;
}
void My::Get ()
{
 cout << age;
 cout << name;
}
 
int main ()
{
 My OBJ; //OBJ - объект класса My
 OBJ.Set(); // Методы класса
 OBJ.Get(); //Через точку осуществляется доступ к публичным членам класса
 OBJ.age = 22; //!!!! Запрещено, потому что данное поле private //перепишите в public если нужна такая возможность
 return 0;
}
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.03.2013, 10:59 #24
Цитата Сообщение от supra7sky Посмотреть сообщение
Никакие члены класса не могут быть инициализированы!!!
Как так? А static поля? Они принадлежат классу, а не объекту класса.
А еще в C++11 можно поля в определении класса инициализировать.
0
30.03.2013, 10:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 10:59
Привет! Вот еще темы с ответами:

оператора индексации+класс+структура - C++
Задача такая нужна создать словарь терминов. 1.Создаю свой тип данных помощью struct term (слово термин) definition (определение к...

Структура и класс string. Проблема с выводом строки. - C++
Такая проблема: объявляю структуру с классом string: struct exam { std::string name; ... }; Затем объявляю...

Структура «Школьник»: фамилия, имя, отчество; класс; номер телефона; оценки по предметам - C++
Структура «Школьник»: фамилия, имя, отчество; класс; номер телефона; оценки по предметам (математика, физика, русский язык,...

Криво заносит или кривая структура ! - C++
typedef struct{ string* item; //Имя пункта int p; //id страницы }menu_items; и в функции юзаю так: s.item += buf; cout&lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.