小编shi*_*zou的帖子

关于while(n)在c ++中没有逻辑运算符

在c ++中实际做了什么while(n)(n是一个初始化的整数)?

从文档:

while-loop简单地重复语句,而表达式为true.

但是没有逻辑运算符,while(n)所以假设循环运行的方式是n到零,这是否会使它成为假?这是否意味着写作while(n)相当于while(n!=0)

c++ syntax loops

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

直接发送字符串比将字符串指针发送到函数有什么区别?

直接发送字符串比将字符串指针发送到函数有什么区别?

例如:

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)

第一个我得到各种访问违规错误,而第二个我没有,所以这两者有什么区别?

c syntax error-handling

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

在switch语句中通过引用返回

我想通过引用返回到交换机内部的变量来返回,例如:

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语句?

c++ syntax reference switch-statement c++11

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

THREE.js中材料的不透明度

我正在使用兰伯特着色器,例如,它设置材料如下:

  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

javascript shader three.js autodesk-forge

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

在调用按钮点击功能时保持这个类

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.objfoo().

javascript jquery ecmascript-6

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

拉动并切换到分支后保持不分支

我正在尝试切换另一个分支,但我一直呆在一个独立的头上或没有分支.

我尝试了什么:

开关/结帐:

在此输入图像描述

获得:

在此输入图像描述

但如果我想提交,我仍然没有分支:

在此输入图像描述

如果我试图拉这个分支:

在此输入图像描述

我越来越:

在此输入图像描述

我仍然没有分支......

我怎样才能真正回到portalGraphs分支?

git github tortoisegit

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

STL容器是否像shared_ptr一样进行智能释放?

STL容器是否像智能一样shared_ptr

当超出范围时,它们会自行解除分配,但是分配操作呢?

vector<int> aa(9);
...fill aa...
vector<int> bb;
aa = bb;
Run Code Online (Sandbox Code Playgroud)

赋值操作是否正确释放了所有内容aa

c++ stl c++11

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

lambda函数的返回类型是lambda [] X() - > X,不能转换为X.

考虑一个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

c++ syntax lambda c++11

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

检测用户是否输入空格或使用cin.get()输入条件

我试图让这个输入回路停止,如果用户进入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()和控制台应用程序?

c++ syntax

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

void*和void**之间的区别**

除了能够解除引用之外void**,我不理解以下内容:

void * foo, **bar;
foo++;//error
bar++;//no error
Run Code Online (Sandbox Code Playgroud)

为什么不是第一次工作而第二次工作呢?有什么不同?

c void-pointers pointer-arithmetic

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