2013-11-19 3 views
0

У меня вопрос к моему синтаксису. Я сделал эту структуруMFC Синтаксис set Узел как новый Узел

struct Node 
{ 
    CString name; 
    CString vorname; 
    CString geburtsdatum; 
    CString adresse; 
    CString plz; 
    CString ort; 
    CString email; 
    CString geschlecht; 
    CString land; 
    CString firma; 
    CString telefon; 
    CString fax; 
    Node* next; 
    Node* previous; 
}; 
Node *Actual; 
const Node *Start; 

Таким образом, это в моей .h файле. Теперь я хочу в моей .cpp файл, который Start является new Node Это должно быть что-то таким образом Start = new Node;

Можете ли вы сказать мне синтаксис, чтобы сделать это?

Благодаря

+0

Общий совет: не * определять * переменные внутри файлов заголовков. –

+0

Что касается вашей проблемы, попробовали ли вы это сделать? как первое в функции 'main'? –

+1

Кроме того, это не PHP. C++ предлагает типы, выходящие за строки и структуры строк. – IInspectable

ответ

0

Поскольку переменная является Const, вы не можете изменить его содержание. Я думаю, вы хотели бы иметь возможность изменять их, но все же держать указатель (Start) как const. Следующий код сделает это.

// .h file 
... 
extern Node* const Start; 

// .cpp file 
Node* const Start = new Node(); 
int main() 
{ 
    Start->name = "user2675121"; 
    delete Start; 
    return 0; 
} 

Ключевое слово «Экстерн» используется с «Start» (INT .h файл) сообщает компилятору, что эта переменная будет инициализирована где-то в другом месте. И const должен быть помещен после '*', чтобы сделать указатель (а не его данные) const. Но использование глобальных переменных всегда является плохим решением.

0

Я предполагаю, что вы пытаетесь сделать следующее в своем файле cpp. start = new Node();

в этом случае, почему «const node * start». Создание const не позволяет записывать новые данные на эту переменную.

Мое предложение удаляется «сопзЬ»

#include <stdio.h> 
struct Node 
{ 
    int info; 
    Node* next; 
    Node* previous; 
}; 
int main() 
{ 
    const Node* start ; 
    int d = 4; 
    start = new Node(); 
    start->info = d; 
    printf("%d\t", start->info); 

    return 0; 
} 

В этом на Пуск-> Информация говорит «Node :: Информация только для чтения» .. то есть вы не можете присвоить данные структуры на start. Так что любезно удалите const и выполните необходимые операции

Смежные вопросы