2014-02-14 4 views
1

Я действительно новичок в C++, поэтому, если это действительно глупый вопрос, я сожалею. Я пытаюсь создать собаку Object, но он не позволит мне передать имя в подрядчику здесь кодОшибка при создании класса в C++ Visual Studio 2012

main.cpp

#include <iostream> 
#include <string> 
#include "Dog.h" 
int main(){ 
    std::string name = "Spike"; 
    Dog *dog = new Dog('Name', 2); 



} 

Dog.h

#include <string> 
class Dog { 
public : 
    std::string name; 
    int age; 
    Dog(std::string name , int age); 
};  

Dog.cpp

#include "Dog.h"; 
#include <string>; 

    Dog::Dog(std::string name, int age) 
    { 
     Dog::name = name; 
     Dog::age = age; 
    } 

ответ

1

ошибка вы видите, клюв ause вы передаете одиночное цитируемое имя, а не нижнюю переменную имени. Это даст вам ошибки. Однако есть и другие.

Вы пытаетесь получить доступ к имени переменной элемента на dog::name. Это неправильное использование dog.name.

Так что используйте период, а не двойной двоеточие.

Примечание: вы также можете использовать this->name = name.

1

Вы используете :: ошибочно. Он предназначен для доступа к статическим переменным и методам класса/структуры или пространства имен.

Вы пытаетесь получить доступ к членам объекта, использовать либо . или ->

Для получения дополнительной информации: When do I use a dot, arrow, or double colon to refer to members of a class in C++?

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