我正在尝试使用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++编程经验的大学生.我想尽快为我的应用程序实现一个简单的基于REST的API.
我查看了卡萨布兰卡和libWebSockets,但在各自网站上发布的示例有点过头了.是否有任何库有更多关于在C++中创建RESTFUL API服务器的面向初学者的教程?
注意:我知道这个问题已在C#中被问过几次,但答案是一年或两年以上,而且大部分都不针对初学者.我希望新帖子能够产生一些新的答案!
我现在正在学习C++,在每个项目的开始阶段,我的讲师都会说:
using namespace std;
Run Code Online (Sandbox Code Playgroud)
据我所知,它使您不必调用包含头名称的头文件中的函数,如iostream :: stdout,而只需调用stdout.
但这条线究竟告诉C++做什么.什么是命名空间,什么是std?
除了python之外,我也是编程新手,所以切换到一个新的范例对我来说非常困惑.
我注意到,当我初始化一个字符串时,编译器报告了一个我没想到的错误.
例如:
#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应该这样做.
为什么我会收到这个错误?这两个初始化字符串(s3和s4)有什么区别?
如果我想将值修改为一个函数并将其带回主函数,哪个更好?并说用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) 我已经在Windows上使用QtCreator几天了,我打算用它作为我的主要IDE来用C++编写代码(我现在不会使用Qt的库).
虽然,我真的很想念Visual studio的自动完成功能,特别是在输入功能时.
我试过使用Clang Code Model,但它似乎没有解决我的"问题",它们是:
1. Qt的自动完成不像Visual Studio那样被动;
2.如果一个人开始在参数列表出现之前键入一个函数及其第一个参数,则必须删除开头的括号并等待它最终出现之前;
3.参数列表和自动完成框不能同时显示;
4.您通常必须通过按下ctrl + space手动启用自动完成.
我正在阅读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中使用的函数?
我正在研究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?如果我说的是错误的,那么布尔值的最小大小是多少?
我正在阅读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) 我已经在构造函数中搜索了有关虚函数的相关问题,我知道如果我们在基类的构造函数中调用虚函数,则只调用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) 这是我的代码:
#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++ ×9
c++11 ×4
c ×2
android ×1
android-ndk ×1
api ×1
autocomplete ×1
boolean ×1
constructor ×1
file ×1
file-io ×1
for-loop ×1
gradle ×1
input ×1
namespaces ×1
pointers ×1
qt ×1
qt-creator ×1
rest ×1
sizeof ×1
std ×1
string ×1
virtual ×1