0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 25
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Передача вектора из класса в класс?28.09.2013, 18:33. Показов 2512. Ответов 17
Метки нет (Все метки)
Доброго времени суток! У меня возникла проблема в очень простой программе. Я передаю функции из класса board.cpp в класс test.cpp.
У меня выдает g++ следующую ошибку:
вот мой код: class board.cpp
0
|
28.09.2013, 18:33 | |
Ответы с готовыми решениями:
17
Передача вектора структур из класса в другой класс Передача вектора по ссылке в конструктор класса Копирование вектора из класса в класс Класс итератора для класса вектора |
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
|
|||||||||||
28.09.2013, 19:13 | 2 | ||||||||||
ну, board.cpp и test.cpp не классы)
Зачем at?) выход за границы ты все равно никак не обрабатываешь, да его у тебя и не будет, так что можно и через обычные []. Совет: подключи
Может, include guard нужно в .h? Типа:
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
28.09.2013, 19:14 | 3 |
у вас две функции main. но дело не в этом.
похоже вы собираете только один файл test.cpp. компилятор увидел объявление класса и все что нужно сделал. а вот линкер - нет. линкеру нужно сказать, чтобы он компоновал программу из двух объектных файлов: test.cpp и board.cpp. после этого линкер начнет ругаться на две функции main. из board.cpp ее нужно убрать. там только определения методов класса Board. строки 8 и 9 в боард.спп - лишние. это объявления свободных функций и определений нет. и нигде вроде нет попыток использовать эти свободные функции. все остальное тоже криво , но вы сперва со сборкой бинаря разберитесь. и не слушайте совет на счет написания using namespace std; в h. это плохой совет, так делать не стоит.
1
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
28.09.2013, 19:20 | 4 |
а вы cpp файл к проекту добавили?
0
|
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 25
|
|
28.09.2013, 19:20 [ТС] | 5 |
спасибо большое за помощь, сейчас попробую и отпишусь. Насчет метода main, это я его откомментить забыл, прошу прощение
0
|
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
|
28.09.2013, 19:24 | 6 |
зачем весь вектор передавать в функцию которая просто печатает его содержимое? ведь можно передать ссылку или указатель. и не будет лишнего копирования и сама программа будет быстрее работать
1
|
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 25
|
|
28.09.2013, 19:33 [ТС] | 7 |
не могли бы показать на примере как сослать вектор?
Добавлено через 1 минуту Не очень понимаю как это все реализовать. Да и вообще не понимаю что вы имеете ввиду? можно с примером пожалуйста? Все остальное поправил! Спасибо
0
|
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
||||||
28.09.2013, 19:37 | 8 | |||||
просто звездочку поставить перед v
0
|
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 25
|
|
28.09.2013, 19:50 [ТС] | 9 |
ну а так чтобы принять это значение в test.cpp, мне там тоже надо звездочку поставить? или где-то еще?
0
|
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
|
|
28.09.2013, 19:52 | 10 |
1
|
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
||||||
28.09.2013, 19:55 | 11 | |||||
правильно
изменить только прототип и определение функции вот так: (добавить значок & перед v)
2
|
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 25
|
|||||||||||||||||||||
28.09.2013, 22:59 [ТС] | 12 | ||||||||||||||||||||
Вроде все поправил как сказали, а ошибка все-равно присутствует. Простите, я знаю что очень сильно туплю, просто только пришел в с++ и ничего еще не понимаю в нем.
Выдает ошибку:
Добавлено через 1 час 39 минут что, ничкто-никто не может подсказать?
0
|
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
|
28.09.2013, 23:03 | 13 |
я не могу найти ошибку(
0
|
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 25
|
|
28.09.2013, 23:15 [ТС] | 14 |
В любом случае огромное спасибо, это я налажал, а ты и так пытаешься разобрать что я тут наделал Может для меня будет более правильным решением попробовать это все компайлить через эклипс а не путем g++ в терминале линукса?
0
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
29.09.2013, 07:22 | 15 |
вам в самом начале уже советовали сделать так g++ board.cpp test.cpp -o my_super_program_bin
1
|
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
|
|
29.09.2013, 11:46 | 16 |
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
29.09.2013, 12:17 | 17 |
в конкретно этом файле - нет его.
конфликт может возникнуть при росте проекта при включении этого файла прямо или косвенно в другие места. вот тогда придется помучится. так что лучше сразу приучится не писать никогда эти юзинги в h файлах. по крайней мере до тех пор, пока не будет четкого понимания к чему это может привести. новичкам такое советовать точно не стоит.
1
|
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 25
|
|
29.09.2013, 23:08 [ТС] | 18 |
Большое вам всем спасибо, теперь разобрался!
0
|
29.09.2013, 23:08 | |
29.09.2013, 23:08 | |
Помогаю со студенческими работами здесь
18
Написать функцию для класса, возращающую данный из вектора обьектов класса по итератору вектора Передача данных из класса в класс в C# Передача параметра из класса в класс Передача переменной из класса в класс Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |