小编joh*_*een的帖子

使用C库进行C++程序

我正在尝试使用使用Qt制作的GUI来控制Dynamixel伺服.Dynamixel提供了一组C库来控制电机,而我知道GUI的唯一方法是Qt,它本质上是C++.是否可以以任何方式使用Qt C++代码中的Dynamixel C库?

c c++ robotics

39
推荐指数
5
解决办法
6万
查看次数

为什么静态成员函数定义没有关键字'static'?

根据C++中'static'关键字的这个链接:

static关键字仅与类定义中的静态成员的声明一起使用,但不与该静态成员的定义一起使用.

为什么成员函数定义中禁止使用static关键字?我确实理解在其定义中将函数重新声明为"静态"是多余的.但是在编译函数定义时使用它应该是无害的,因为它不会导致任何歧义.那么为什么编译器会禁止它呢?

c++ static

17
推荐指数
2
解决办法
1876
查看次数

如何使用Java编写Windows软件?

我刚在大学里学过Java.但是,我可以编写在命令行中运行的程序.如何使用Java创建GUI软件,比如记事本?我真的很抱歉在这个论坛上提出这样一个基本问题,但我真的很有兴趣编写真实世界的软件.另外,我听说过很多关于Python的内容.如何使用Python开发类似的软件?

java user-interface

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

什么是在C++中默认初始化的全局强类型枚举?

我正在尝试确定初始化全局强类型枚举的默认值.以下代码当然不能编译.

#include <iostream>
using namespace std;

enum class A{a=10, b=20};

// Global strongly-typed enum, uninitialized
A k;

int main() {
    if(k==A::a)
        cout<<"Equal to a"<<endl;
    else if(k==A::b)
        cout<<"Equal to b"<<endl;
    else if(k==0)
        cout<<"Equal to zero"<<endl;

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

什么是"k"初始化?

c++ enums initialization

9
推荐指数
2
解决办法
876
查看次数

为什么这个循环变量可访问外循环范围?

在浏览一些C++代码时,我遇到了以下几行:

for (int i = 0; i < count; i++) {
        if (&array[i].GetData() == el)
            break;
}
if (i < count) {
   // .. Do something
}
Run Code Online (Sandbox Code Playgroud)

我很惊讶地看到循环计数器变量i可以在循环外部访问!

只是为了确保i循环外部与循环内部的循环相同,我将循环变量名称更改为i1.

for (int i1 = 0; i1 < count; i1++) {
        if (&array[i1].GetData() == el)
            break;
}
if (i < count) {    // COMPILATION ERROR: Identifier i is undefined
   // .. Do something
}
Run Code Online (Sandbox Code Playgroud)

这导致该行的编译错误if(i < count):

标识符'i'未定义.

到底是怎么回事?这对于编译器错误来说太基础了.如果i父作用域中有另一个,则不会出现编译错误.我错过了什么吗?我正在使用Visual Studio 2015.

c++ visual-studio

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

为什么调用箭头( - >)运算符失败?

请考虑以下代码:

#include <iostream>

class Test
{
public:
    Test() : a{ 0 }
    {}

    void print() const
    {
        std::cout << "a : " << a << std::endl;
    }

    void operator->()
    {
        a = 5;
    }

    void operator++()
    {
        ++a;
    }

public:
    int a;
};

int main()
{
    Test a;
    a.print();

    // Increment operator
    a.operator++();      // CORRECT
    ++a;                 // CORRECT
    a.print();

    // Indirection operator
    a.operator->();      // CORRECT
    a->;                 // INCORRECT
    a.print();
}
Run Code Online (Sandbox Code Playgroud)

为什么对第二个->操作员的调用不正确?我知道这种用法->与一般用法不同,但这种用法是否被标准禁止?

c++ operator-overloading

6
推荐指数
2
解决办法
246
查看次数

如何确定函数参数是自动设置为默认值还是在 C++ 中显式设置?

我很确定这是不可能的,但如果某种方式存在(可能通过编译器提供的宏),它对我来说非常有用,所以我在这里发布它。假设我有一个函数:

void func( int param1, bool param2=false){ ... }
Run Code Online (Sandbox Code Playgroud)

param2这里已经给出了默认值。是否有任何机制可以确定param2是明确设置为其默认值false还是自动传递?换句话说,从 function 内部func,是否可以区分以下两个调用?我正在使用 Microsoft Visual C++ 编译器。

func(1, false);
Run Code Online (Sandbox Code Playgroud)

func(1);
Run Code Online (Sandbox Code Playgroud)

c++ default-parameters

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

我可以在不使用HTTPS连接的情况下使用SSL证书吗?

我有点困惑.如果SSL证书有助于识别您是否已连接到受信任的服务器,那么为什么需要使用加密(HTTPS)连接?我可以使用SSL证书进行HTTP连接吗?

ssl https

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

Qt 中的交互式图形

我想使用 Qt 和 C++ 制作这样的交互式图形:http : //jsxgraph.uni-bayreuth.de/wiki/index.php/Cubic_spline_interpolation

关于如何做到这一点的任何线索?

编辑:好的,我已经尝试过 QGraphicsView 类和 qwt 库。然而,我发现没有简单的方法来引入交互性。有没有一种简单的方法可以做到这一点?

qt interactive graph

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

在C++中没有定义的类声明

我对C++没有太多经验,我对Qt文档中的以下几行有疑问:http://qt-project.org/doc/qt-4.8/mainwindows-application-mainwindow-h.html(第4行-6在顶部评论后)

 class QAction;
 class QMenu;
 class QPlainTextEdit;
Run Code Online (Sandbox Code Playgroud)

由于QAction,QMenu和QPlainTextEdit是Qt的库类(点击它们导致他们的文档页面),不应该使用'#include'包含它们吗?用关键字"class"声明它们的目的是什么?据我所知,编译器会将它视为一个全新的类,与库类QAction无关.

但是,'mainwindow.cpp'文件(http://qt-project.org/doc/qt-4.8/mainwindows-application-mainwindow-cpp.html)不包含任何类QAction的定义,尽管它的对象是在代码中使用.

这里发生了什么 ?

编辑:进一步解释问题

查看MainWindow类的createActions方法(http://qt-project.org/doc/qt-4.8/mainwindows-application-mainwindow-cpp.html).这里正在创建类QAction的对象,但我无处可找到QAction类的定义.

c++ qt

3
推荐指数
2
解决办法
2879
查看次数