我访问_maxx时遇到问题,它显示:./记分板.第页:20:38:错误:成员访问不完整的类型'WINDOW'(又名'_win_st')mvwprintw(得分_win,0,得分_win-〉_maxx - 10,“%11llu”,得分);^ /库/开发人员/命令行工具/软件开发工具包/MacOSX.sdk/usr/include/curses.h:322:16:注意:类型定义结构"_win_st WINDOW“的前向声明;
这是我的代码:
#pragma once
class Scoreboard {
protected:
WINDOW * score_win;
public :
Scoreboard(){
}
Scoreboard(int width, int y, int x){
score_win = newwin(1, width, y, x);
}
void initialize(int initial_score){
this->clear();
mvwprintw(score_win, 0, 0, "Score: ");
updateScore(initial_score);
this->refresh();
}
void updateScore(int score){
mvwprintw(score_win, 0, score_win->_maxx - 10, "%11llu", score);
}
void clear(){
wclear(score_win);
}
void refresh(){
wrefresh(score_win);
}
};
1条答案
按热度按时间axzmvihb1#
正如在注解中提到的,
WINDOW
可能是不透明的。这是ncurses的一个可配置特性,在MacOS SDK中使用。在curses.h
的顶部,您可能会看到不使用
WINDOW
结构体的成员,而是使用一些函数来读取数据:getmaxx
做的正是您想要的,但它是为遗留应用程序(如BSD curses)设计的getmaxyx
是X/Open Curses的等价物,它结合了getmaxx
和getmaxy
。X/Open Curses没有指定
WINDOW
(或其他类型)是否不透明,但也没有提到_maxx
等结构体成员,便携式应用程序应该首选标准化的函数。