小编Rhy*_*den的帖子

使用构造函数返回

只是一个简单的问题.

我写了一些返回自定义类Command的代码,我写的代码似乎工作正常.我想知道是否有任何理由我不应该这样做.它是这样的:

Command Behavior::getCommand ()
{
  char input = 'x';

  return Command (input, -1, -1);
}
Run Code Online (Sandbox Code Playgroud)

无论如何,我读到构造函数不具有返回值,但这在g ++中有效.

谢谢你的建议,

里斯

c++ constructor return-value

9
推荐指数
1
解决办法
225
查看次数

创建一个函数指针,该函数指针将函数指针作为参数

我正在尝试创建一个函数指针,它将一个函数指针作为一个参数,但我不确定如何去做...我被建议尝试typedef-ing我的一个函数指针,但得到相同的错误.有人可以用正确的语法帮助我吗?

    int
186 main(int argc, char **argv)
187 {
188   int             i;

194   typedef int   (*search_alg) (int *, int, int);
195   typedef int   (*search) (search_alg);
196   set_t         (*intersect_alg) (list_t *, (search));
197
198   clo_t          *iopts = parse_args(argc, argv);
199
200   /* select interstion algorithm */
201   switch (iopts->imode) {
202   case SVS:
203     fprintf(stdout, "ALGORITHM : SvS\n");
204     intersect_alg = svs;
205     break;
206   case SEQ:
207     fprintf(stdout, "ALGORITHM : Sequential\n");
208     intersect_alg = sequential;
209     break;
210   case ADP: …
Run Code Online (Sandbox Code Playgroud)

c pointers function-pointers function

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

在JS中创建没有canvas实例的CanvasImageData对象

我是Javascript的新手.我正在使用canvas进行一些图像处理,我正在尝试创建一个新的CanvasImageData对象而不实际引用特定的Canvas.

即.

oImageData = CanvasRenderingContext2D.createImageData(vCSSWidth, vCSSHeight)
Run Code Online (Sandbox Code Playgroud)

(来自MSDN)

    // Why can't I write:
    var image_data = CanvasRenderingContext2D.createImageData(50, 50);
    // or:
    var image_data = CanvasRenderingContext2D.prototype.createImageData(50, 50);
    // ?

    // Instead I must do:
    var canvas = document.createElement("canvas");
    var image_data = canvas.createImageData(50, 50);
Run Code Online (Sandbox Code Playgroud)

有没有Canvas实例的方法呢?如果不是有原因吗?

谢谢!

javascript html5 canvas

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

std :: vector的Typedef和ostream运算符

我创建了一个类Chromosome,它最终只是一个带有ostream运算符的vector的包装器,所以我决定改为使用typedef vector.但是,我在使用模板化的ostream运算符时遇到了麻烦......这是最好的方法吗?(我已经看到了一些方法并且没有得到任何工作)

template<typename G>
class Chromosome {
 public:
  typedef typename std::vector<G> type;
  typedef typename std::pair<type *,type *> ptr_pair;
};

template<typename G> //line 19 below:
std::ostream& operator<<(std::ostream& os, const Chromosome<G>::type& chromosome) {
  for(auto iter = chromosome.begin(); iter != chromosome.end(); ++iter)
    std::cout << *iter;
  return os;
}
Run Code Online (Sandbox Code Playgroud)

目前我得到的错误是:

chromosome.h:19: error: expected unqualified-id before ‘&’ token
chromosome.h:19: error: expected ‘)’ before ‘&’ token
chromosome.h:19: error: expected initializer before ‘&’ token
Run Code Online (Sandbox Code Playgroud)

干杯.

c++ templates typedef vector ostream

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

glBufferData() 的分段错误

我不明白为什么这段代码是段错误:

AxesMarker::AxesMarker(float size)
    : size_(size), vbo_vertices_(0), vbo_elements_(0)
{
  Vertex vertices[6] = { 
      Vertex(Color4f::RED, Vector3f::ZERO, Vector3f::ZERO),
      Vertex(Color4f::RED, Vector3f::ZERO, Vector3f(size_, 0.0f, 0.0f)),
      Vertex(Color4f::BLUE, Vector3f::ZERO, Vector3f::ZERO),
      Vertex(Color4f::BLUE, Vector3f::ZERO, Vector3f(0.0f, size_, 0.0f)),
      Vertex(Color4f::GREEN, Vector3f::ZERO, Vector3f::ZERO),
      Vertex(Color4f::GREEN, Vector3f::ZERO, Vector3f(0.0f, size_, 0.0f)) };

  GLuint elements[6] = { 0, 1, 2, 3, 4, 5 };

  fprintf(stderr, "sizeof(vertices): %d, sizeof(Vertex): %d", (int) sizeof(vertices), (int) sizeof(Vertex));

  /* create buffers */
  glGenBuffers(1, &vbo_vertices_);
  glGenBuffers(1, &vbo_elements_);

  /* bind buffers */
  glBindBuffer(GL_ARRAY_BUFFER, vbo_vertices_);
  glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo_elements_);

  /* buffer data */
  glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glut segmentation-fault

3
推荐指数
1
解决办法
1803
查看次数

在unix中创建和绑定端口时出现问题.(网络编程新手)

我在Unix中创建端口时遇到了麻烦.这段代码不断返回"创建socket(3)的错误",这没有任何意义,因为sockfd必须小于0才能打印错误行.

server.c:

int main (int argc, char **argv)
{
  int sockfd;
  struct sockaddr_in server_sockaddr;
  char buff[TRANSFER_BUFFER_LEN];

  /* check number of command line arguments */
  if (argc < 2)
  {
    fprintf (stderr, "Usage: %s <port>\n");
    exit (EXIT_FAILURE);
  }

  /* create server socket */
  if ((sockfd = createUdpSocket (&sockfd,
                                 &server_sockaddr,
                                 atoi (*(argv + 1)))
      ) < 0);
  {
    fprintf (stderr, "Error creating socket (%d).\n", sockfd);
    exit (EXIT_FAILURE);
  }

  ...

return 0;
}
Run Code Online (Sandbox Code Playgroud)

socket_utils.h:

int createUdpSocket (int *sockfd, struct sockaddr_in *client_sockaddr, int port) …
Run Code Online (Sandbox Code Playgroud)

c unix network-programming

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

获得奇怪的"预期的主要表达"错误

在进行方法调用时,我收到一个非常奇怪的错误:

   /* input.cpp */

#include <ncurses/ncurses.h>
#include "input.h"
#include "command.h"

Input::Input ()
{
    raw ();
    noecho ();
}

Command Input::next ()
{
    char input = getch ();
    Command nextCommand;

    switch (input)
    {
    case 'h':
        nextCommand.setAction (ACTION_MOVELEFT);
        break;
    case 'j':
        nextCommand.setAction (ACTION_MOVEDOWN);
        break;
    case 'k':
        nextCommand.setAction (ACTION_MOVEUP);
        break;
    case 'l':
        nextCommand.setAction (ACTION_MOVERIGHT);
        break;
    case 'y':
        nextCommand.setAction (ACTION_MOVEUPLEFT);
        break;
    case 'u':
        nextCommand.setAction (ACTION_MOVEUPRIGHT);
        break;
    case 'n':
        nextCommand.setAction (ACTION_MOVEDOWNLEFT);
        break;
    case 'm':
        nextCommand.setAction (ACTION_MOVEDOWNRIGHT);
        break;
    case '.':
        nextCommand.setAction (ACTION_WAIT);
        break;
    }


    return nextCommand; …
Run Code Online (Sandbox Code Playgroud)

c++ methods

0
推荐指数
1
解决办法
3195
查看次数

使用bookshelf.js过滤关系查询

如何使用through方法检索所有记录但是具有中间表的条件,例如:我想检索通道的所有轨道,其中来自相册(中间表)的is_publish字段的值为1

我的代码到目前为止如下所示:

new channelModel({'id': req.params.channel_id})
.fetch({withRelated: ['tracks']})
.then(function (channel) {
    if (channel) {
        res.json({error: false, status: 200, data: channel});
    } else {
        res.json({error: true, status: 404, data: 'channel does not exist'});
    }
})
Run Code Online (Sandbox Code Playgroud)

使用此代码我检索所有轨道..并且通道模型具有如下定义的功能:

tracks: function () {
    return this.hasMany('track').through('album');
}
Run Code Online (Sandbox Code Playgroud)

我的数据库看起来像这样:

渠道:id,name,desc

专辑:CHANNEL_ID,名称,DESCR,is_publish

曲目:album_id,姓名,DESCR

有什么建议吗?

javascript bookshelf.js

0
推荐指数
1
解决办法
4932
查看次数