小编Gab*_*iel的帖子

如何在实验gradle中排除cpp文件?

我正在尝试使用Android Studio 1.3.1使用实验gradle语法编译NDK项目.

我的build.gradle外表非常像茶壶的例子

除了我的源代码树有一些我不想包含在构建中的文件.我无法删除这些文件,所以我需要gradle来忽略它们.

我尝试添加一个exclude定义:

android.sources {
    main {
        jni {
            source {
                srcDirs 'src/main/jni'

                excludes += "src/main/jni/FileToExclude.cpp"
            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

但这并没有影响结果.gradle仍然尝试编译此文件.

我想excludes,exclude=,+=与什么都没有,但没有别的置换工作.

c++ android gradle android-ndk android-studio

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

如何实现REST API服务器?

我是一名具有中级C++编程经验的大学生.我想尽快为我的应用程序实现一个简单的基于REST的API.

我查看了卡萨布兰卡libWebSockets,但在各自网站上发布的示例有点过头了.是否有任何库有更多关于在C++中创建RESTFUL API服务器的面向初学者的教程?

注意:我知道这个问题已在C#中被问过几次,但答案是一年或两年以上,而且大部分都不针对初学者.我希望新帖子能够产生一些新的答案!

c++ api rest

14
推荐指数
3
解决办法
5万
查看次数

什么是命名空间,为什么有必要

我现在正在学习C++,在每个项目的开始阶段,我的讲师都会说:

using namespace std;
Run Code Online (Sandbox Code Playgroud)

据我所知,它使您不必调用包含头名称的头文件中的函数,如iostream :: stdout,而只需调用stdout.

但这条线究竟告诉C++做什么.什么是命名空间,什么是std?

除了python之外,我也是编程新手,所以切换到一个新的范例对我来说非常困惑.

c++ namespaces std

10
推荐指数
3
解决办法
4770
查看次数

这两种添加字符串的情况有什么区别?

我注意到,当我初始化一个字符串时,编译器报告了一个我没想到的错误.

例如:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s1 = "Hello", s2 = "World!"; // ok
    string s3 = s1 + ", " + "World!"; // ok
    string s4 = "Hello" + ", " + s2; // error
    cout << s1 + " " + s2 << endl; //ok
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

对我来说,如果s3工作得很好,也s4应该这样做.

为什么我会收到这个错误?这两个初始化字符串(s3s4)有什么区别?

c++ string c++11

6
推荐指数
3
解决办法
277
查看次数

通过引用传递或在C中使用全局变量

如果我想将值修改为一个函数并将其带回主函数,哪个更好?并说用C引用传递,是指使用指针,如本例所示。我应该将“ a”作为全局变量吗?

#include <stdio.h>
#include <conio.h>

int sum;

int example(int *a,int b)
{
    sum = *a + b;
    (*a)++;
}

int main(void)
{
    int a, b;
    printf("Tell me the value of A and B: \n");
    scanf("%d %d", &a, &b);
    example(&a, b);
    printf("The result: %d . And the new value of A: %d", sum, a);

    printf("\n\nTHE END\n");
    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers pass-by-reference

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

Qt Creator自动完成

我已经在Windows上使用QtCreator几天了,我打算用它作为我的主要IDE来用C++编写代码(我现在不会使用Qt的库).

虽然,我真的很想念Visual studio的自动完成功能,特别是在输入功能时.

我试过使用Clang Code Model,但它似乎没有解决我的"问题",它们是:

1. Qt的自动完成不像Visual Studio那样被动;

2.如果一个人开始在参数列表出现之前键入一个函数及其第一个参数,则必须删除开头的括号并等待它最终出现之前;

3.参数列表和自动完成框不能同时显示;

4.您通常必须通过按下ctrl + space手动启用自动完成.

c++ qt autocomplete qt-creator visual-studio

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

为什么在for循环中定义的变量只存在于其中?

我正在阅读Stanley B. Lippman撰写的C++ Primer,在流程控制部分,它显示了一个像这样的for循环的例子:

#include <iostream>

int main(void){
    int sum=0;
    for (int val=1; val <= 10; val++)
        sum +=val;
    std::cout << sum << std::endl; 
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

如果我std::cout << val;在for循环之外尝试,IDE会给我一个错误.但是我想了解它为什么会发生以及它与这段代码的不同之处:

#include <iostream>

int main(void){
    int sum=0;
    int val;
    for ( val=1; val <= 10; val++)
        sum +=val;
    std::cout << sum << std::endl;
    std::cout << val; 
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

我可以在哪里实际打印val价值没有任何问题.

它是否与局部变量有关,考虑到for-loop我们在main中使用的函数?

c++ for-loop c++11

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

布尔值的最小大小是多少?

我正在研究Stanley B. Lippman 在 C++ Prime 中的算术类型。当作者谈论整数类型和每个类型的大小时,例如 char 是 8 位,我注意到布尔值的最小大小并不是很清楚。考虑类型转换,以及以下代码:

bool b = 42; // b is true
int i = b; // i had value 1
Run Code Online (Sandbox Code Playgroud)

我可以说布尔值具有与整数相同的最小大小(通常为 16 位),因为如果它为假,它将为 0,即一个 int,如果为真,则为 1,另一个 int?如果我说的是错误的,那么布尔值的最小大小是多少?

c++ boolean sizeof c++11

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

为什么我不能重载::运算符?

我正在阅读Stanley B. Lippman的C++ Primer一书,在变量和基本类型部分,我看到了范围运算符::.

我已经阅读了一些关于运算符重载的内容,我认为它在特殊情况下非常有用,但是当我在互联网上搜索时,我发现我根本无法使::运算符超载.

这篇文章中,我发现.操作员可能过载.但是,这可能导致关于操作是针对对象重载.还是针对所引用的对象的问题..

因此,我认为可能有一种方法可以超载::.

但如果它不能,任何人都可以解释我为什么?

我对::运算符的想法的一个例子:

#include <iostream>

/*
 *For example:
 *I wanna increase 1 unit every time 
 *I call the global variable r doing ::r
 *insede of the main function
 */

int r = 42; 

int main()
{
    int r = 0;
    std::cout << ::r << " " << r << std::endl; //It would print 43 0 after the operator overload

    return …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading c++11

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

构造函数中虚函数的奇怪行为

我已经在构造函数中搜索了有关虚函数的相关问题,我知道如果我们在基类的构造函数中调用虚函数,则只调用virtual的基本版本.

但是,我在下面发布的内容显示,在Base构造函数中调用virtual实际上调用了D2中的虚拟版本.

我知道它似乎有点复制,但我想知道是否有人帮助我.

我的代码:

#include<iostream>
struct B
{
  B()=default;
  B(const B& b)  {b.fun();}
  virtual void fun()const  {std::cout<<"virtual_B"<<std::endl;}
};
struct D1:public B
{
  D1()=default;
  D1(const D1& d1):B(d1)  {}
  void fun()const  {std::cout<<"virtual_D1"<<std::endl;}
};
struct D2:public D1
{
  D2()=default;
  D2(const D2& d2):D1(d2)  {}
  void fun()const  {std::cout<<"virtual_D2"<<std::endl;}
};
int main()
{
  D2 a;
  D2 b=a;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ virtual constructor

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

如何使用文件结构?

我有一个小问题,我有当前的文件结构: 在此输入图像描述

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

const char FILE_NAME[] = "inputfile.txt";

int main()
{
    FILE *in_file;    /* input file */

    in_file = fopen(FILE_NAME, "r");
    if (in_file == NULL) {
        printf("Cannot open %s\n", FILE_NAME);
        exit(8);
    }else{
        printf("File opened %s\n", FILE_NAME);
    } 
    fclose(in_file);
    return (0);
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

无法打开inputfile.txt

但文件就在那里.有人能帮我吗?

(如果我将"r"更改为"w",我可以写入文件,但我在SSD上找不到该文件)

c file-io file input

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