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

Пространство имен - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в наследовании http://www.cyberforum.ru/cpp-beginners/thread1108058.html
Появилась проблема в наследовании с использованием виртуальных методов. Если записать код вот так, присваивая значения переменным не в классе dxDotBG, то появляется ошибка "неразрешённый внешний символ": class dxObject { public: dxObject() {} ~dxObject() {} float GetX() const { return itsX; } float GetY() const { return itsY; } char GetSymbol() const { return itsSymbol; }
C++ Что будет с указателем после использования операции delete? Имеется код: #include <iostream> using namespace std; int main() { int *wtf_ptr; wtf_ptr=new int(8); http://www.cyberforum.ru/cpp-beginners/thread1108034.html
C++ Ошибка в коде
Цикл работает пока вводятся tempЫ и цикл_офф равен фалс. Когда пишу в темп "no more", cycle_off становится тру и цикл прекращается. Проблема в том что дальше окно закрывается и код keep_window_open(); не выполняется. Т.е в консоли то я должен ввести что нибудь что бы окно закрыть, а этого нет. Если цикл закомментить то всё работает нормально. В чём проблема никак не врублюсь. #include...
C++ Как правильно отнаследовать?
Здарова! Такой вопрос! как можно правильно записать следующее:есть два класса 1-й класс -граф, второй класс-минимальный путь из одной точки до другой.Хотел сделать следующее, есть некоторая перменная "k" типа Graph(1-й класс) там вводится граф. Затем эта переменная передается в другой класс Minway(поиск минимального пути в графе), чтобы использовать саму таблицу смежности.Как можно это правильно...
C++ Разработайте программу на С++, которая вводила бы пробег в милях и бензин, использованный из каждой емкости http://www.cyberforum.ru/cpp-beginners/thread1107997.html
Здравствуйте! Помогите пожалуйста! Программа работает, но не правильно немного, с меткой проблемы, результат выводит не верно на последних шагах. Очень хочется понять свои ошибки, но сама не справлюсь. Из-за высокой цены бензина водители озабочены затратами топлива своих автомобилей. Один водитель взял в рейс несколько емкостей бензина, записывая пройденные мили и бензин, использованный из...
C++ Написать программу содержащую процедуры формирования и просмотра списка и функцию вставляющую элемент с заданным номером написать программу содержащую процедуры формирования и просмотра списка и функцию вставляющую элемент с заданным номером подробнее

Показать сообщение отдельно
malfoi
 Аватар для malfoi
50 / 50 / 15
Регистрация: 17.12.2013
Сообщений: 334
28.02.2014, 22:25     Пространство имен
Здравствуйте, имеется код :

triangle.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef TRIANGLE_H_INCLUDED
#define TRIANGLE_H_INCLUDED
 
namespace TRG {
    struct Point {
        int x, y;
    };
    struct Triangle {
        Point a, b, c;
    };
}
 
#endif
functions.h
C++
1
2
3
4
5
6
7
8
9
10
11
#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED
#include "triangle.h"
 
namespace TRG {
    double GetArea(Triangle);
    double GetDist(Point, Point);
    void print(Triangle);
}
 
#endif
functions.cpp
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
#include "functions.h"
#include <cmath>
#include <iostream>
 
using namespace TRG;
 
double GetDist(Point pt1, Point pt2) {
    double dist = std::sqrt((double) ((pt1.x - pt2.x) * (pt1.x - pt2.x) + (pt1.y - pt2.y) * (pt1.y - pt2.y)));
    return dist;
}
 
double GetArea(Triangle trg) {
    double a = GetDist(trg.a, trg.b),
           b = GetDist(trg.a, trg.c),
           c = GetDist(trg.b, trg.c);
    double p = (a + b + c) / 2;
    double area = std::sqrt(p * (p - a) * (p - b) * (p - c));
    return area;
}
 
void print(Triangle trg) {
    std::cout << "a: " << trg.a.x << " " << trg.a.y << std::endl;
    std::cout << "b: " << trg.b.x << " " << trg.b.y << std::endl;
    std::cout << "c: " << trg.c.x << " " << trg.c.y << std::endl;
}
main.cpp
C++
1
2
3
4
5
6
7
#include <iostream>
#include "functions.h"
 
int main() {
 
    return 0;
}
В итоге ошибка о том, что он не знает к чему обращаться при нахождении a, b, c в файле functions.cpp
double GetDist(TRG::Point, TRG::Point) или TRG::double GetDist(TRG::Point, TRG::Point)

Если при описании функции вместо GetDist после using namespace написать TRG::GetDist, т.е.
C++
1
2
3
4
double TRG::GetDist(Point pt1, Point pt2) {
    double dist = std::sqrt((double) ((pt1.x - pt2.x) * (pt1.x - pt2.x) + (pt1.y - pt2.y) * (pt1.y - pt2.y)));
    return dist;
}
то все ок, почему так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru