1
Bir C++ üstbilgi dosyası üzerinde çalışıyorum ve "Bilinmeyen tür adı 'dizesi” hatası alıyorum, "std :: string" mi demek istediniz? " #include <string>
zaten kodumun en üstünde, bu yüzden bu sorunu nasıl giderebileceğimi bilmiyorum. Düşüncesi olan var mı? Xcode kullanıyorum, eğer bu bir fark yaratırsa.C++ Bilinmeyen tür adı 'string'
#ifndef POINT_HPP
#define POINT_HPP
#include <string>
using namespace std;
class Point {
public:
Point();
Point(int pInitX, int pInitY);
Point(int pInitX, int pInitY, int pInitColor);
double distance(Point pAnotherPoint);
int getColor();
int getX();
int getY();
void move(int pNewX, int pNewY);
void setColor(int pNewColor);
void setX(int pNewX);
void setY(int pNewY);
string toString; // Error: Unknown type name 'string'; did you mean 'std::string'?
private:
void init(int pInitX, int pInitY, int pInitColor);
int mColor;
int mX;
int mY;
};
#endif
using namespace std;
bildirmelidir. Daha da iyisi, [asla "ad alanı std'yi her yerde kullan" (http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-in-c-considered-bad-practice). C++ 'da "ad alanı kullan" un olduğunu unutmayın. Tamamen aklını çıkar. Sınıflara, yani "std :: string" e başvururken daima tam ad alanı yeterliliği kullanın. –İlgisiz, ancak genel üye değişkenleri genellikle kötü bir fikirdir. Bu durumda 'toString' yerine bir yöntem yapacağım. – MrEricSir
Sam, tavsiyelerinizi başkalarından da duydum ve mantıklı. Ne yazık ki, bu bir sınıf ödevidir ve "using namespace std;" eğitmenimizin talimatlarına göre. –