在c ++中实际做了什么while(n)
(n
是一个初始化的整数)?
从文档:
while-loop简单地重复语句,而表达式为true.
但是没有逻辑运算符,while(n)
所以假设循环运行的方式是n到零,这是否会使它成为假?这是否意味着写作while(n)
相当于while(n!=0)
?
直接发送字符串比将字符串指针发送到函数有什么区别?
例如:
void foo(char * a){//suppose foo reads and/or writes to the passed string
...
}
int main(){
foo("asdf");//what is the difference between this
char a[]="asdf";
foo(a);//and this?
}
Run Code Online (Sandbox Code Playgroud)
第一个我得到各种访问违规错误,而第二个我没有,所以这两者有什么区别?
我想通过引用返回到交换机内部的变量来返回,例如:
sometype & getbar();
void foo() {
switch ( {statement} ) {
case {statement}:
sometype & handle = getbar();
...
Run Code Online (Sandbox Code Playgroud)
但我收到编译器错误:
'case'标签跳过'identifier'的初始化
'default'标签跳过'identifier'的初始化
它似乎不可能这样做:
void foo() {
sometype & handle;
switch ( {statement} ) {
case {statement}:
handle = getbar();
...
Run Code Online (Sandbox Code Playgroud)
因为引用变量需要初始化.
有没有办法保持switch语句?
我正在使用兰伯特着色器,例如,它设置材料如下:
this.material.uniforms.emissive.value = new THREE.Color(
Math.random(),
Math.random(),
Math.random());
Run Code Online (Sandbox Code Playgroud)
在我拥有一个简单的着色器之前,我需要像这样设置材质来控制Alpha:
this.material.uniforms.color.value = new THREE.Vector4(
Math.random(),
Math.random(),
Math.random(),
0.3)
Run Code Online (Sandbox Code Playgroud)
但是看起来朗伯着色器没有颜色vector4。
关于如何控制Alpha的任何想法?
我从这里对lambert着色器使用相同的示例:https : //forge.autodesk.com/blog/forge-viewer-custom-shaders-part-2
而且简单的着色器来自:http : //adndevblog.typepad.com/cloud_and_mobile/2017/01/forge-viewer-custom-shaders-part-1.html
this
从按钮进入点击功能时有没有办法保持班级?
例如:
class MyClass extends FooClass{
constructor (obj) {
super (obj)
this.obj= obj;
$("#someButton").click(this.foo);
}
foo(){
this.obj; // undefined because this is now #someButton and not MyClass
}
Run Code Online (Sandbox Code Playgroud)
但我想访问this.obj
在foo()
.
我正在尝试切换另一个分支,但我一直呆在一个独立的头上或没有分支.
我尝试了什么:
开关/结帐:
获得:
但如果我想提交,我仍然没有分支:
如果我试图拉这个分支:
我越来越:
我仍然没有分支......
我怎样才能真正回到portalGraphs分支?
STL容器是否像智能一样shared_ptr
?
当超出范围时,它们会自行解除分配,但是分配操作呢?
vector<int> aa(9);
...fill aa...
vector<int> bb;
aa = bb;
Run Code Online (Sandbox Code Playgroud)
赋值操作是否正确释放了所有内容aa
?
考虑一个Point
带有构造函数的类Point(int _x, int _y, char _ch) :x(_x), y(_y), ch(_ch) {};
,尝试将此类与lambda函数一起使用:
Point p = [&]() {return Point(1, 2, '%');};
Point p = [&]() -> Point {return Point(1, 2, '%');};
Run Code Online (Sandbox Code Playgroud)
两者都导致错误:
没有合适的用户定义的转换从"lambda [] Point() - > Point"到"Point"存在
这是什么类型,以及如何使之成为X
代替lambda []X ()->X
?
我试图让这个输入回路停止,如果用户进入space ' '
或enter \n
但空间部分似乎不工作,甚至当我更换in != ' '
与in != 32
这空间的ASCII码.
#include<iostream>
using namespace std;
int main()
{
int temp, cho = 0;
char in = '0';
while (in != '\n' && in != ' ')
{
in = cin.get();
temp = in - '0';
if (temp >= 0 && temp <= 9)
cho += temp;
}
}
Run Code Online (Sandbox Code Playgroud)
是否有可能实现cin.get()
和控制台应用程序?
除了能够解除引用之外void**
,我不理解以下内容:
void * foo, **bar;
foo++;//error
bar++;//no error
Run Code Online (Sandbox Code Playgroud)
为什么不是第一次工作而第二次工作呢?有什么不同?