小编Ste*_*son的帖子

如何在C++中创建两个使用彼此作为数据的类?

我正在寻找创建两个类,每个类包含另一个类类型的对象.我怎样才能做到这一点?如果我不能这样做,是否有一个解决方法,比如每个类包含一个指向另一个类类型的指针?谢谢!

这就是我所拥有的:

文件:bar.h

#ifndef BAR_H
#define BAR_H
#include "foo.h"
class bar {
public:
  foo getFoo();
protected:
  foo f;
};
#endif
Run Code Online (Sandbox Code Playgroud)

文件:foo.h

#ifndef FOO_H
#define FOO_H
#include "bar.h"
class foo {
public:
  bar getBar();
protected:
  bar b;
};
#endif
Run Code Online (Sandbox Code Playgroud)

文件:main.cpp

#include "foo.h"
#include "bar.h"

int
main (int argc, char **argv)
{
  foo myFoo;
  bar myBar;
}
Run Code Online (Sandbox Code Playgroud)

$ g ++ main.cpp

In file included from foo.h:3,
                 from main.cpp:1:
bar.h:6: error: ‘foo’ does not name a …
Run Code Online (Sandbox Code Playgroud)

c++ pointers class header-files

44
推荐指数
2
解决办法
7万
查看次数

如何为Ubuntu创建登录屏幕替换

我有兴趣为Ubuntu编写一个替换登录屏幕,该屏幕会向用户显示拼图而不是提示输入密码.我正在寻找关于如何创建这个的一些建议.我是一名具有多年经验的专业程序员,但我不熟悉Linux应用程序编程,知道如何开始这个特定的项目.谢谢!

linux gtk security ubuntu gnome

7
推荐指数
1
解决办法
853
查看次数

你如何在Ubuntu上编译OpenGL程序?

当我尝试使用以下命令编译此页面的第一个示例时:

cc -o abgr abgr.c -lglut -lGLU -lGL -lXmu -lXext -lX11 -lm
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

/usr/bin/ld: cannot find -lXmu
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

什么是" lXmu"?如何编译?

c linux opengl ubuntu

6
推荐指数
1
解决办法
9631
查看次数

为什么这个OpenGL着色器分段在调用glCreateShader时出错?

我正在尝试学习如何编写OpenGL着色器.为什么在我的机器上运行时此代码分段会出错?(我正在使用Ubuntu 10.04,我称之为shader.cpp.)

#include <GL/glut.h>
#include <iostream>
using namespace std;

int
main (int argc, char **argv)
{
  GLuint myVertexShader = glCreateShader(GL_VERTEX_SHADER);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下Makefile编译它:

CC=g++
CFLAGS=-c -Wall -DGL_GLEXT_PROTOTYPES
LDFLAGS= -lglut -lGLU -lGL -lXmu -lXext -lX11 -lm
SOURCES=shader.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=shader

all: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
    $(CC) $(LDFLAGS) $(OBJECTS) -o $@

.cpp.o:
    $(CC) $(CFLAGS) $< -o $@

clean:
    rm -rf *o $(EXECUTABLE)

check-syntax:
    $(CC) -o nul -S ${CHK_SOURCES}
Run Code Online (Sandbox Code Playgroud)

它似乎是调用glCreateShader的行上的分段错误.我没有运气找到这个问题的根源.我是初学者.谢谢!

注意:此代码表示的是我第一次尝试使用OpenGL编写一个简单的着色器.如果一切都搞错了,请随意发布一些有效的代码.我真正想要的是得到一些我可以编译和运行的东西.

c++ opengl shader glsl vertex-shader

5
推荐指数
1
解决办法
3844
查看次数

你如何使用Ruby块来有条件地执行某些操作?

我最近在七周内购买了七种语言一书,并阅读了关于Ruby的章节.在介绍块的部分(第40页)中,给出了一个代码示例,它说明了为了有条件地执行某些事情而使用块:

in_case_of_emergency do
  use_credit_card
  panic
end

def in_case_of_emergency
  yield if emergency?
end
Run Code Online (Sandbox Code Playgroud)

这段代码对我来说没什么意义,本书没有提供太多解释.我想知道你们中的一位Ruby大师是否会介意帮助我解决这个问题.

你怎么能同时拥有一个块和一个同名的函数?你怎么定义"紧急情况?" 我不能在没有抱怨的情况下在IRB中创建块:

NoMethodError: undefined method `in_case_of_emergency' for main:Object
    from (irb):1
    from :0
Run Code Online (Sandbox Code Playgroud)

您将如何调用此代码来演示它是如何工作的?谢谢!

ruby yield function block

5
推荐指数
1
解决办法
3573
查看次数

如何判断一台电脑是否支持OpenGL 2.0?(我想写着色器)

我有兴趣编写OpenGL着色器,但我不确定我的显卡是否足以支持这个或者我的系统配置正确以使用软件替代(Mesa).如何判断我的计算机是否支持OpenGL着色器?(我使用的是Ubuntu 10.04)到目前为止,我已经尝试了三次测试,并且每个人都得到了相互矛盾的答案:

1)我下载,编译和运行成功从示例代码中一个OpenGL着色器程序的OpenGL入门第三版位于这里.但是,同一章中实现其他OpenGL着色器的一些其他代码示例不会运行.其中一些甚至导致我的计算机崩溃或输出窗口用闪烁的颜色做有趣的事情,非常奇怪.

2)我运行以下命令并获得:

$ glxinfo | grep "OpenGL version"
OpenGL version string: 1.5 Mesa 7.7.1
Run Code Online (Sandbox Code Playgroud)

这似乎表明我正在运行OpenGL 1.5,但Mesa版本(据我所知它是OpenGL 2.0的软件实现.不是那么快,但功能与硬件中的真实交易相同)似乎足够好运行OpenGL 2.0.如何判断我的代码使用哪个驱动器,OpenGL 1.5或Mesa 7.7.1?

3)我写了一些代码来输出计算机上的OpenGL版本并得到以下输出:

$ ./version
OpenGL Version major=1, minor=5
GLSL Version major=0, minor=0
Run Code Online (Sandbox Code Playgroud)

这对Mesa没有任何说明,并且会让我相信我正在运行OpenGL 1.5.请帮助我了解我正在运行的版本,所以我可以知道是否需要跑到商店购买新的显卡才能确信着色器会运行.谢谢!

PS这是代码:

#include <GL/glut.h>
#include <stdio.h>
#include <string.h>

void getGlVersion(int *major, int *minor)
{
  const char *verstr = (const char *) glGetString(GL_VERSION);
  if ((verstr == NULL) || (sscanf(verstr,"%d.%d", major, minor) != 2))
    {
      *major = *minor = 0;
      fprintf(stderr, "Invalid GL_VERSION format!!!\n"); …
Run Code Online (Sandbox Code Playgroud)

opengl graphics shader version mesa

4
推荐指数
1
解决办法
1万
查看次数

如何在Perl中的正则表达式中使用chr函数?

我有一个Perl脚本,其字符串可能包含或不包含ASCII字符代码中的字符146.我有兴趣在正则表达式中使用chr()函数来查明该字符串是否确实包含该字符.如果角色在那里,我想用"'"字符替换它.

这可能吗?如果不是这样做的另一种方式是什么?

这个让我难过.谢谢!

regex perl chr

2
推荐指数
1
解决办法
2054
查看次数

标签 统计

opengl ×3

c++ ×2

linux ×2

shader ×2

ubuntu ×2

block ×1

c ×1

chr ×1

class ×1

function ×1

glsl ×1

gnome ×1

graphics ×1

gtk ×1

header-files ×1

mesa ×1

perl ×1

pointers ×1

regex ×1

ruby ×1

security ×1

version ×1

vertex-shader ×1

yield ×1