Java字符串文字池的简单C++模拟
你好,
我无法从 MyString 类中的私有静态变量进行调用。任何想法?
static void displayPool() {
MyString::table->displayAllStrings();
}
StringTable* (MyString::table) = new StringTable();
这两个都在 MyString 类中声明。表是一个私有变量。
谢谢。
编辑:头文件
#ifndef MYSTRING_H
#define MYSTRING_H
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
#define POOLSIZE 100
class StringTable {
public:
StringTable();
int addString(const char *str);
char* getString(int i);
void deleteString(int i);
void displayAllStrings();
void addCount(int);
void minusCount(int);
private:
char** array; //da pool
int* count;
int size;
int numStrings;
};
class MyString {
public:
MyString(const char*);
MyString(const MyString&);
~MyString();
static void displayPool();
MyString& operator=(const MyString &);
char* intern() const;
private:
int length;
int index;
static StringTable* table;
friend MyString operator+(const MyString& lhs, const MyString& rhs);
friend ostream& operator<<(ostream & os, const MyString & str);
};
#endif