Ich bin neu mit C++ und ich bin derzeit für Prüfungen, C++ in VisualStudio und Experimentieren ein wenig zu studieren. Normalerweise arbeite ich mit Java.Klassenmitglied Funktionen für C++ Neuling
schrieb ich eine einfache Klasse, um zu sehen, ob und wie die Dinge funktionieren:
class Point
{
private:
int x;
int y;
public:
Point(int arg1, int arg2)
{
x = arg1;
y = arg2;
}
};
ich für x und y 2 einfache Mitgliederfunktionen hätte gerade versucht, in x- und y-Variablen gespeichert, um den Wert zu verdoppeln.
Zuerst habe ich versucht, dies:
void doubleX()
{
x *= 2;
};
void doubleY()
{
y *= 2;
};
Dann ist dieses Ich habe versucht:
void doubleX()
{
Point::x = 2 * Point::x;
};
void doubleY()
{
Point::y = 2 * Point2::y;
};
Beide innerhalb die Klassendefinition gesetzt werden.
Während durch Visual Studio Gebäude es alwas gibt mir diese Fehlerwarnung: „Fehler C3867‚Punkt :: Doublex‘: Nicht-Standard-Syntax, Verwendung‚&‘einen Zeiger auf ein Element erstellen“
mess Versuchte auch mit Adress-Zeigern, aber ... ich habe wirklich keine Ahnung. Ich denke, ich weiß, wie Zeiger grundsätzlich funktionieren, aber ich habe keine Ahnung, wie man es für meinen Fall hier verwendet.
Eine schnelle Lösung und Erklärung für dieses Problem?
Vielen Dank im Voraus!
EDIT: hier ist mein ganzer Code ist Problem in der Haupt jetzt
#include "stdafx.h"
#include <iostream>
using namespace std;
class Point
{
public:
int x;
int y;
Point(int arg1, int arg2)
{
x = arg1;
y = arg2;
}
void doubleX()
{
x *= 2;
};
void doubleY()
{
y *= 2;
};
};
int main()
{
Point p(1,1);
int &x = p.x;
int &y = p.y;
cout << x << "|" << y;
p.doubleX; p.doubleY; //error message here
cout << x << "|" << y;
cin.get();
}
Was ist 'Point2'? Um auf Klassenmitglieder zu verweisen, würden Sie 'this->' verwenden oder einfach weglassen (genau wie in Java) – UnholySheep
Sie müssen Ihre Mitgliedsfunktionen _inside_ die Klassendefinition deklarieren - von dem, was Sie eingefügt haben, ist es überhaupt nicht klar du hast das getan. – Useless
Sie können diesen Fehler möglicherweise nicht von diesem Code erhalten. Sie sollten [hier] starten (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). – molbdnilo