Форум программистов, компьютерный форум CyberForum.ru

Как влияет inline и обертка(#ifndef #define #endif) .h файла на компоновщик. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать 2 объекта разработанного класса http://www.cyberforum.ru/cpp-beginners/thread424544.html
Создать 2 объекта разработанного класса. Класс – динамический вектор (одномерный массив). В результате выполнения программы в первом объекте должны быть удалены все элементы, содержащиеся во втором объекте. Содержимое объектов (их векторов) до и после обмена вывести на экран. я пробовал делать со строками, собрал из двух программ, вроде все компилится, запускается, но что там куда передается...
C++ Дан алгоритм нахождения обратной матрицы. По нему хочу написать код. Но непонятно по какому методу он работает. Сам алгоритм: (Вложенный файл) Помогите пожалуйста разобраться по какому алгебраическому методу он работает. Не могу понять где вычисляется детерминант матрицы а где транспонирование матрицы... Заранее большое спасибо! http://www.cyberforum.ru/cpp-beginners/thread424540.html
C++ error C2064: результатом вычисления фрагмента...
error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов //процедуры и функции 11. Найти количество строк\столбцов,все элементы которых различны.(целочисленная матрица NxM) #include "stdafx.h" #include "stdlib.h" #include "windows.h" #include "time.h" #include "conio.h" int diffelemmatr(int A ){
Программа с интерефейсом C++
Всем привет. Как сделать свою программу с интерфесом. Какая программа для этого нужна. Цель программы : Жмешь сгенерировать даёт тебе пароль. (Сложный) Программа просто для регена паролей сайтов и сохранения их в блокнот. Как реализовать
C++ Вычислить е в степени х разложением в ряд. http://www.cyberforum.ru/cpp-beginners/thread424501.html
Т.к. я полный 0 в С++, прошу помощи у профи) Завтра зачет. Составить схему программы и программу на языке C++ с использованием оператора цикла с предусловием и оператора цикла с постусловием для вычисления функции е^x (e в степени икс) с использованием разложения в ряд:
C++ Площадь треугольника Составить программу, которая по трем координатам, которые вводит пользователь, считает площадь фигуры, ограниченной этими координатами. Помогите плиз))) подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,136
Записей в блоге: 26
09.01.2012, 12:36     Как влияет inline и обертка(#ifndef #define #endif) .h файла на компоновщик.
Цитата Сообщение от Chelioss Посмотреть сообщение
В общем, непонято откуда ошибка взялась
Всё понятно. В заголовочные файлы можно складывать только то, что разрешено включать сразу в несколько файлов: описания типов, описания макросов, описание функций и методов, для которых допустимы множественные определения (в случае Си++ это функции и методы с модификатором inline).

Ты же в своём коде впендюрил туда оператор (функцию). Если бы оператор был описан внутри класса, то он бы имел неявный модификатор inline и всё было бы хорошо. Но он описан вне класса, а потому в каждом файле, в котором делается подключение твоего Point.h, образуется одна копия оператора, что и влечёт за собой множественное определение на линковке.

В проекте, состоящем из нескольких файлов *.cpp, каждый файл *.cpp компилируется отдельным запуском компилятора независимо от остальных файлов *.cpp. А guard, кстати, используется не для этих целей

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
Если бы оператор был описан внутри класса, то он бы имел неявный модификатор inline и всё было бы хорошо
Оператор не является членом класса, это я проглядел. Поэтому правильным было бы сказать, что "если бы оператор был описан с модификатором inline"
 
Текущее время: 11:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru