Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ругаеться на NULL и на параметры по умолчинаю. 
:(
    Опции темы
Elfet
Дата 19.11.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Отдельно всё работает. А если это этот же код подключаю к проекту на C# то вот какие ошибки:
Цитата

Error    1    error C3222: 'x' : cannot declare default arguments for member functions of a managed type or generic functions    c:\documents and settings\melethron\мои документы\visual studio 2005\projects\graph\graph\Graph.h    34    
Error    2    error C3222: 'y' : cannot declare default arguments for member functions of a managed type or generic functions    c:\documents and settings\melethron\мои документы\visual studio 2005\projects\graph\graph\Graph.h    34    
Error    3    error C2065: 'NULL' : undeclared identifier    c:\Documents and Settings\Melethron\Мои документы\Visual Studio 2005\Projects\Graph\Graph\Graph.cpp    12    




Код

// This is the main DLL file.

#include "stdafx.h"

#include "Graph.h"

using namespace GraphSpace;

Graph::Graph()
{
    graph = new Peak;
    graph->next = NULL;
    graph->numer = 0;
    graph->x = 0;
    graph->y = 0;
    graph->ribs = NULL;
    EnableLoops = false;
    EnableRepeat = false;
}




Код

// Graph.h

#pragma once

using namespace System;

namespace GraphSpace {
    struct Rib;
    struct Peak
    {
        int numer;
        int x;
        int y;
        Peak * next;
        Rib * ribs;
    };
    struct Rib
    {
        Peak * toPeak;
        Rib * next;
    };
    public ref class Graph
    {
    private:
        Peak * graph;
    public:
        bool EnableLoops;
        bool EnableRepeat;
    public:
        Graph();
        //Graph(const Graph & copy);
        ~Graph();
        void print();
        bool AddPeak(int x = 0, int y = 0);
        bool DeletePeak(int the);
        bool RenumerPeak(int the, int to);
        bool MovePeak(int the, int x, int y);
        bool AddRib(int from, int to);
        bool AddDoubleRib(int the1, int the2);
        bool DeleteRib(int from, int to);
        bool DeleteDoubleRib(int the1, int the2);
    private:
        Peak * GetPeak(int the);
        Peak * EnablePeak();
        int EnableNumer();
    };
}

В чём проблема может быть?


--------------------
PM MAIL WWW Skype   Вверх
Rockie
Дата 19.11.2006, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



Elfet, возможно MSDN поможет: Compiler error 3222

Видать ему не нравятся аргументы по умолчанию здесь: 
Код
 bool AddPeak(int x = 0, int y = 0);

Цитата
It is not permitted to declare a method parameter with a default argument. An overloaded form of the method is one way to work around this issue. That is, define a method with the same name with no parameters and then initialize the variable in the method body.


Это сообщение отредактировал(а) Rockie - 19.11.2006, 17:23


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Любитель
Дата 20.11.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Итак, для менежед-кода создавай три функции:
Код

bool AddPeak(); // x = 0, y = 0
bool AddPeak(int x); // y = 0
bool AddPeak(int x, int y);

CLR (C# в частности) не поддерживают дефолт-аргументов. Хотя MS могли бы сделать компилер для C++/CLI, позволяющий автоматом генерить несколько перегруженных функций...


--------------------
PM MAIL ICQ Skype   Вверх
Elfet
Дата 20.11.2006, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Ну ваще! smile Ну дают! smile


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.