VC++里面,Stack怎么写?
登录 | 论坛导航 -> 华新鲜事 -> 社会百科 | 本帖共有 4 楼,分 1 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  末页>>
作者:maserati (等级:2 - 初出茅庐,发帖:274) 发表:2003-06-29 14:54:49  楼主  关注此帖
VC++里面,Stack怎么写?
我写了个,好多错! 帮忙看看!

//tristStack.h
#ifndef _TRISTSTACK_H_INCLUDE
#define _TRISTSTACK_H_INCLUDE


#include "Trist.h"

class tristStack {
public:
tristStack();
~tristStack();
void pushTrist (Trist t);
Trist popTrist ();
bool isEmpty();
int getSize();


Trist head;

tristStack next;
int size;
};

#endif

//tristStack.cpp

#include "tristStack.h"

tristStack::tristStack() {
head = null;
next = null;
size=0;
}

tristStack::~tristStack() {

}

bool tristStack::isEmpty () {
if (size == 0)
return true;
return false;
}

int tristStack::getSize() {
return size;
}

void tristStack::pushTrist(Trist t){
next = this;
head = t;
size++;
}

Trist tristStack::popTrist() {
Trist temp = head;
head = next.head;
next = next.next;
size--;
return temp;
}


//error message when built
--------------------Configuration: Delaunay2D - Win32 Debug--------------------
Compiling...
computeDT.cpp
d:\urop\myproj\delaunayvisualiser\delaunay2d\triststack.h(19) : error C2460: 'next' : uses 'tristStack', which is being defined
d:\urop\myproj\delaunayvisualiser\delaunay2d\triststack.h(7) : see declaration of 'tristStack'
tristStack.cpp
d:\urop\myproj\delaunayvisualiser\delaunay2d\triststack.h(19) : error C2460: 'next' : uses 'tristStack', which is being defined
d:\urop\myproj\delaunayvisualiser\delaunay2d\triststack.h(7) : see declaration of 'tristStack'
d:\urop\myproj\delaunayvisualiser\delaunay2d\triststack.cpp(5) : error C2065: 'null' : undeclared identifier
d:\urop\myproj\delaunayvisualiser\delaunay2d\triststack.cpp(25) : error C2440: '=' : cannot convert from 'class tristStack *const ' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
d:\urop\myproj\delaunayvisualiser\delaunay2d\triststack.cpp(32) : error C2228: left of '.head' must have class/struct/union type
d:\urop\myproj\delaunayvisualiser\delaunay2d\triststack.cpp(33) : error C2228: left of '.next' must have class/struct/union type
Error executing cl.exe.

test2.exe - 6 error(s), 0 warning(s)

难道VC++里面,null也不能用么?
Speed Up...
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:hula (等级:7 - 出类拔萃,发帖:3682) 发表:2003-06-29 18:28:25  2楼
c++和java不一样的。。
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:风中的树叶 (等级:1 - 微不足道,发帖:15) 发表:2003-06-29 21:36:53  3楼 评分:
C++ 中...
1. null 必须大写,也就是 NULL;

2. 类tristStack还没定义,所以不能用;可用指针.

下面是改过的程序:
//tristStack.h
#ifndef _TRISTSTACK_H_INCLUDE
#define _TRISTSTACK_H_INCLUDE


#include "Trist.h"

class tristStack {
public:
tristStack();
~tristStack();
void pushTrist (Trist t);
Trist popTrist ();
bool isEmpty();
int getSize();


Trist head;

void * next;
int size;
};

#endif

//tristStack.cpp

#include "tristStack.h"

tristStack::tristStack() {
head = Trist();
next = NULL;
size=0;
}

tristStack::~tristStack() {

}

bool tristStack::isEmpty () {
if (size == 0)
return true;
return false;
}

int tristStack::getSize() {
return size;
}

void tristStack::pushTrist(Trist t){
next = this;
head = t;
size++;
}

Trist tristStack::popTrist() {
Trist temp = head;
head = ((tristStack *)next)->head;
next = ((tristStack *)next)->next;
size--;
return temp;
}
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:maserati (等级:2 - 初出茅庐,发帖:274) 发表:2003-06-29 22:35:17  4楼
C++ 中...1. null 必须大写,也就是 NULL; 2. 类tristStack还没定义,所以不能用;可用指针. 下面是改过的程序: //tristStack.h #ifndef _TRISTSTACK_H_INCLUDE #define _TRISTSTACK_H_INCLUDE #include "Trist.h" class tristStack { public: tristStack(); ~tristStack(); void pushTrist (Trist t); Trist popTrist (); bool isEmpty(); int getSize(); Trist head; void * next; int size; }; #endif //tristStack.cpp #include "tristStack.h" tristStack::tristStack() { head = Trist(); next = NULL; size=0; } tristStack::~tristStack() { } bool tristStack::isEmpty () { if (size == 0) return true; return false; } int tristStack::getSize() { return size; } void tristStack::pushTrist(Trist t){ next = this; head = t; size++; } Trist tristStack::popTrist() { Trist temp = head; head = ((tristStack *)next)->head; next = ((tristStack *)next)->next; size--; return temp; }
谢谢
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
论坛导航 -> 华新鲜事 -> 社会百科 | 返回上一页 | 本主题共有 4 篇文章,分 1 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  末页>>

请登录后回复:帐号   密码