Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2010, 17:56   #1
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию inline оператор

Здравствуйте, уважаемые форумчане!
Такая проблема: сделал я модуль с типом "структура" с перегруженными операторами с директивой inline. Подключил модуль к проекту. Но, увы, данное дело не скомпилилось. При этом без inline всё чудесно, но очень бы хотелось всё-таки именно в таком виде... Я в С++ новичок, так что сильно не пинайте, если что :-)
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 30.06.2010, 18:00   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Что есть модуль? К чему и как вы подписали директиву inline? Что написал компилятор, когда не смог это скомпилировать?
pu4koff вне форума Ответить с цитированием
Старый 30.06.2010, 18:07   #3
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Фрагменты кода:
.h:
Код:
struct TVector
{
	float x,y,z;
	void make(float ax, float ay, float az);
.cpp
Код:
void TVector::make(float ax, float ay, float az)
{x = ax;y = ay;z = az;};
проект:
Код:
#include "..\..\SBGeometry.h"
...
V1.make(1,1,1);
Так всё работает, но если после "void" написать "inline", то
"Test1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall TVector::make(float,float,float)" (?make@TVector@@QAEXMMM@Z) в функции _wmain"

И с операторами то же самое, даже эта процедурка не инлайнится...
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 30.06.2010, 18:19   #4
Nikita1987
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 30
По умолчанию

inline надо писать вроде перед типом функции!
начинающий программист
Nikita1987 вне форума Ответить с цитированием
Старый 30.06.2010, 18:24   #5
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Ну, перед "void" тоже писал, и после, всё равно не пашет..
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 30.06.2010, 18:28   #6
sever-42
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 96
По умолчанию

Код:
struct TVector
{
	float x,y,z;
	inline void make(float ax, float ay, float az);
а если так
или так сразу будет inline
Код:
struct TVector
{
	float x,y,z;
	void make(float ax, float ay, float az) {x = ax;y = ay;z = az;}
include <Qt>
sever-42 вне форума Ответить с цитированием
Старый 30.06.2010, 18:30   #7
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Говорю же, пробовал так. Не заводится...
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 30.06.2010, 18:47   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а какие ошибки то?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 30.06.2010 в 18:53.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.06.2010, 18:50   #9
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Писал уже во втором посте, пишет следующее при компиляции:
"Test1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall TVector::make(float,float,float)" (?make@TVector@@QAEXMMM@Z) в функции _wmain"

А процедурка вроде бы обычная, сами посмотрите: просто из 3-х параметров переназначаются поля структуры. Хотя можт я что-то не понимаю)
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 30.06.2010, 19:15   #10
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Можно после void, а можно и перед. Покажите полностью весь код! Всё должно работать
NiCola999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24
inline функции pproger Общие вопросы C/C++ 7 19.10.2009 23:46
inline asm в gcc drRobert Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 23.08.2008 10:26
ошибка в inline функции Tan4ik Помощь студентам 2 04.05.2008 21:26
inline??? пыхта4ог Общие вопросы C/C++ 2 09.11.2007 17:54