问题列表 - 第31276页

将指针传递给需要引用的函数?

在C++中,当你有一个引用对象的函数时,如何将对象指针传递给它?

如此:

Myobject * obj = new Myobject();

somefunc(obj);  //-> Does not work?? Illegal cast??

somefunc(Myobject& b)
{
 // Do something
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers reference

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

识别GSM加密算法

我想知道我的Android手机(ADP)是否在特定时间使用A5/0,A5/1或A5/2.我怎样才能做到这一点?

encryption android gsm

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

类型定义,定义#

任何人都可以解释它们之间的区别

#define int* char
Run Code Online (Sandbox Code Playgroud)

typedef int* char;
Run Code Online (Sandbox Code Playgroud)

c macros typedef

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

是否有像Ruby一样的jQuery(&:map)函数?

我想从一系列项目中获取所有ID,我怎样才能做出这一条短线:

var ids = [];
$(".post").each(function(index, element) {
  ids.push($(element).attr("id"));
});
Run Code Online (Sandbox Code Playgroud)

就像是:

var ids = $(".post").map("id");
Run Code Online (Sandbox Code Playgroud)

arrays jquery

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

我怎么知道"组装"是否确实改变了?

我在VS2005中创建了一个简单的"Hello World"应用程序.这是一个直接的控制台应用程序; 它只包含以下几行:

Console.WriteLine("Hello World");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

当我尝试重建相同的控制台应用程序而不执行任何更改(只需按下重建按钮)时,我得到一个微妙的不同的可执行文件.(我从第一个和第二个生成的可执行文件生成了一个SHA-1哈希,它是不同的!)

当没有代码更改时,为什么它会有所不同?实际改变了什么?我使用十六进制编辑器进行比较,只看到几个不同的字节.

我想我的最终问题是,我怎么知道"集会"是否确实改变了?(当然不看文件版本,文件大小等)

编辑

到目前为止,我们已经确定差异在于PE头(时间戳和一些调试数据).在我重新发明轮子之前,是否有一个忽略PE头的"装配比较"工具?

谢谢,伊恩

c# comparison file-comparison

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

空结构背后的目的?

来自C++标准库的auto_ptr声明

namespace std {

template <class Y> struct auto_ptr_ref {};


template <class X>
class auto_ptr {
public:
    typedef X element_type;

    // 20.4.5.1 construct/copy/destroy:
    explicit           auto_ptr(X* p =0) throw();
                       auto_ptr(auto_ptr&) throw();
    template <class Y> auto_ptr(auto_ptr<Y>&) throw();

    auto_ptr&                      operator=(auto_ptr&) throw();
    template <class Y> auto_ptr&   operator=(auto_ptr<Y>&) throw();
    auto_ptr&                      operator=(auto_ptr_ref<X>) throw();

    ~auto_ptr() throw();

    // 20.4.5.2 members:
    X&     operator*() const throw();
    X*     operator->() const throw();
    X*     get() const throw();
    X*     release() throw();
    void   reset(X* p =0) throw();

    // 20.4.5.3 conversions:
                                auto_ptr(auto_ptr_ref<X>) throw();
    template <class Y> …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

const指针指向一个指针

为什么我不能这样做:

char* p = new char[10];

void SetString(char * const str)
{
    p = str;
}


SetString("Hello");
Run Code Online (Sandbox Code Playgroud)

我有一个指向char的const指针,为什么我不能将const指针指向另一个指针?

这似乎是不合逻辑的,因为通过将其分配给另一个指针,您基本上不会违反char指针的常量.或者是你?

编辑:当我编译它时,它说"错误C2440:'=':无法从'char*const*__ w64'转换为'char*'"

(我试图从我正在阅读的书中理解一个概念.只是无法获得编译的代码.

码:

int _tmain(int argc, _TCHAR* argv[])
{

    MyString *strg = new MyString(10);
    strg->SetString("Hello, ");

    MyString *secondstr = new MyString(7);
    secondstr->SetString("Tony");

    strg->concat(*secondstr, *strg);

}
Run Code Online (Sandbox Code Playgroud)

CPP文件:

#include "MyStringClass.h"
#include <string.h>
#include "stdafx.h"

#include "MyStringClass.h"

void MyString::concat(MyString& a, MyString& b)
{
    len = a.len + b.len;
    s = new char[len + 1];
    strcpy(s, a.s);
    strcat(s, b.s);
    delete [] s; 

}

void …
Run Code Online (Sandbox Code Playgroud)

c++ pointers const

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

Zsh包装建议

我刚从Bash迁移到Zsh,但我有一点问题.在Ubuntu系统上的bash中,当我键入不存在的命令的名称时,Bash在apt数据库中搜索匹配的命令名称并打印出提供该命令的包名称.这是一个非常有用的功能,所以我想知道是否可以使用脚本或其他东西在Zsh中实现这样的东西?

这是一个例子:

$>xmms2
The program 'xmms2' is currently not installed.  You can install it by typing:
sudo apt-get install xmms2-client-cli
Run Code Online (Sandbox Code Playgroud)

或者如果命令不完全匹配:

$>xmms
No command 'xmms' found, did you mean:
Command 'lmms' from package 'lmms' (universe)
Command 'xmms2' from package 'xmms2-client-cli' (universe)
Command 'xmds' from package 'xmds' (universe)
Command 'xdms' from package 'xdms' (universe)
Run Code Online (Sandbox Code Playgroud)

zsh apt-get

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

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

C++ 0x:使用函数迭代元组

我有一个名为的函数_push,它可以处理不同的参数,包括元组,并且应该返回推送元素的数量.

例如,_push(5)应该在堆栈上推送'5'(lua堆栈)并返回1(因为推送了一个值),同时_push(std::make_tuple(5, "hello"))应该按'5'和'hello'并返回2.

我不能简单地替换它_push(5, "hello")因为我有时使用_push(foo())并且我想允许foo()返回一个元组.

无论如何,我无法使它与元组一起工作:

template<typename... Args, int N = sizeof...(Args)>
int _push(const std::tuple<Args...>& t, typename std::enable_if<(N >= 1)>::type* = nullptr) {
 return _push<Args...,N-1>(t) + _push(std::get<N-1>(t));
}

template<typename... Args, int N = sizeof...(Args)>
int _push(const std::tuple<Args...>& t, typename std::enable_if<(N == 0)>::type* = nullptr) {
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

假设你想推动一个tuple<int,bool>.这就是我期望它的工作方式:

  • _push<{int,bool}, 2> 被称为(第一个定义)
  • _push<{int,bool}, 1> 被称为(第一个定义)
  • _push<{int,bool}, 0> 被称为(第二个定义)

但是对于g ++ 4.5(我唯一支持可变参数模板的编译器),我得到一个错误_push<Args...,N-1>(t) …

c++ tuples c++11

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