Problem mit "has a"-Beziehung

Der nette Mann

Erfahrenes Mitglied
Hi,

ich versuche mich gerade in .NET und bin am verzweifeln. Ich habe mir im Standard C++ ein paar Klassen geschrieben, die ein paar Berechnungen durchführen. Ich hab z. B. eine Klasse Linie, die zwei Punkte als Elemente hat und Punkt ist wieder eine Klasse. Nun möchte ich den Code nach .NET bringen. Genau da liegt mein Problem. Ich hab die Klassen übernommen und er nimmt die Punkt-Elemente nicht an. Dabei hab ich sie eigentlich eingebunden. Hier der Code:

Code:
Line.h

#pragma once
#ifndef _LINE_H_
#define _LINE_H_

class Line
{
private:
	Punkt a;
	Punkt b;

public:
	Line(void);
	Line(Punkt p1, Punkt p2);
	~Line(void);
	void setPunktA(int x, int y);
	void setPunktB(int x, int y);
	void drucken(void);
};
#endif

Line.cpp

#include "StdAfx.h"
#include ".\line.h"
#include "Punkt.h"
#using <mscorlib.dll>

using namespace std;

Line::Line(void)
{
}

Line::Line(Punkt p1, Punkt p2) {
	a = p1;
	b = p2;
}

Line::~Line(void)
{
}

void Line::setPunktA(int x, int y) {
	a.setX(x);
	a.setY(y);
}

void Line::setPunktB(int x, int y) {
	b.setX(x);
	b.setY(y);
}

void Line::drucken(void) {
	Console::Write("A ");
	a.drucken();
	Console::Write("B ");
	b.drucken();
}

Also ich hab echt keine Ahnung was da falsch sein soll, denn meien "alten" Klassen kann ich mit dem g++-Compiler laufen lassen...

Vielen Dank

Der nette Mann
 
wo ist denn die Klasse Punkt? ich weiß ja nicht, was du genau mit Punkt machen willst, aber du kannst doch auch die Struktur Point vom .NET Framework nehmen (wenn das nicht reicht, gibts auch Rectangle)
 
Hi,

ich hab mehr oder weniger keine sinnvolle Verwendung für das Programm. Es soll eher als Einstiegshilfe in .NET dienen. Mein Ziel ist es eine Linie mit zwei Punkten zu definieren und damit ein paar Berechnungen zu machen. Nichts weltbewegendes. Deshalb will ich auch, dass meine Klasse Punkt funktioniert. Wenn ich mal ein größeres Projekt beginne, dann will ich nicht vor dem selben Problem stehen.

Hier die Klasse Punkt:

Code:
punkt.h

#pragma once
#ifndef _PUNKT_H_
#define _PUNKT_H_

class Punkt
{
private:
	int x, y;

public:
	Punkt();
	Punkt(int _x, int _y);
	void setPunkt(int _x, int _y);
	int getX(void);
	int getY(void);
	void setX(int _x);
	void setY(int _y);
	void drucken(void);
};

#endif

punkt.cpp

#include <string>
#include "StdAfx.h"
#include ".\punkt.h"
#using <mscorlib.dll>

using namespace std;
using namespace System;

Punkt::Punkt() {};

Punkt::Punkt(int _x, int _y): x(_x), y(_y) {}
	
void Punkt::setPunkt(int _x, int _y) {
	x = _x;
	y = _y;
}

int Punkt::getX(void) {
	return x;
}

int Punkt::getY(void) {
	return y;
}

void Punkt::setX(int _x) {
	x = _x;
}

void Punkt::setY(int _y) {
	y = _y;
}

void Punkt::drucken(void) {
	Console::Write("(");
	Console::Write(x);
	Console::Write("/");
	Console::Write(y);
	Console::WriteLine(")");
}

Also ich hab, wie gesagt, keine Ahnung an was das liegen könnte.

Danke

Der nette Mann
 
Zurück