问题列表 - 第5621页

在C++中延迟类定义中的数组大小?

有没有办法延迟定义数组的大小,直到类方法或构造函数?

我在想什么可能看起来像这样,当然,它不起作用:

class Test
{
    private:
    int _array[][];

    public:
    Test::Test(int width, int height);
};

Test::Test(int width, int height)
{
    _array[width][height];
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays size delay

5
推荐指数
2
解决办法
6205
查看次数

在c ++中有&func或class :: func的用途吗?

这似乎不一致.为什么我们使用&Example :: func而不是Example :: func?是否有用于Example :: func或&exampleFunction?看起来我们不能对函数进行引用,因此排除了Example :: func.我想不出一种使用&exampleFunction的方法,因为exampleFunction已经返回一个指针.

#include <iostream>
class Example {
public:
    void func() { std::cout <<"print me\n"; }
};
void exampleFunction() { std::cout << "print me too\n"; }
typedef void (Example::*ExampleFunc_t)(); 
typedef void (*ExampleFunction_t)();
int main()
{
    Example e;
    ExampleFunc_t     f  = &Example::func;
    ExampleFunction_t f2 = exampleFunction;
    (e.*f)();
    f2();
    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

c++ function-pointers member-pointers

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

如何解决OOP中的交叉引用?

我现在遇到过这种情况,我想知道解决循环引用的OO方法是什么.我的意思是,A类将B类作为成员,B又将A类作为成员.

这方面的一个例子是具有Person配偶作为成员的类Person.

Person jack = new Person("Jack");
Person jill = new Person("Jill");
jack.setSpouse(jill);
jill.setSpouse(jack);
Run Code Online (Sandbox Code Playgroud)

另一个例子是Product类,它将一些其他产品的集合作为成员.该集合可以是例如对该产品感兴趣的人可能也感兴趣的产品,并且我们希望在每个产品基础上维护该列表,而不是在相同的共享属性上(例如,我们不希望仅显示)同类别中的所有其他产品).

Product pc = new Product("pc");
Product monitor = new Product("monitor");
Product tv = new Product("tv");
pc.setSeeAlso({monitor, tv});
monitor.setSeeAlso({pc});
tv.setSeeAlso(null);
Run Code Online (Sandbox Code Playgroud)

(这些产品只是为了说明问题,问题不在于某些产品是否相互关联)

这在OOP中总体上是不好的设计吗?所有OOP语言是否/应该允许这样做,还是只是不好的做法?如果这是不好的做法,解决这个问题最好的方法是什么?

oop

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

关于使用字符串比较字符串

我尝试使用以下代码在字符串类型下进行字符比较:

vector <int> getQuality(string seedTag, vector <string> &MuTag) { 

    vector <int> Quals;  

     for (unsigned i = 0; i<MuTag.size(); i++) { 
         Quals.push_back(-40);
         cout << MuTag[i] << " " << seedTag[i] << endl;

         if (MuTag[i] == seedTag[i]) { // This line 33 with error
           Quals.push_back(40);
         }


     }

     return Quals;
}
Run Code Online (Sandbox Code Playgroud)

但为什么会出现这样的错误:

 Mycode.cc:33: error: no match for 'operator==' in '(+ MuTag)->std::vector<_Tp, _Alloc>::operator[] [with _Tp = std::string, _Alloc = std::allocator<std::string>](((long unsigned int)i)) == seedTag. std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits<char>, …
Run Code Online (Sandbox Code Playgroud)

c++ string comparison

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

是否可以在同一页面上加载多个不同版本的jQuery?

我正在创建一个bookmarklet,如果找不到该对象,它将加载jQuery.加载将检查jQuery的版本.代码如下:

(function(){

    var myBkl = {
         loadScript: function(src) {
            if(window.jQuery && window.jQuery.fn.jquery == '1.3.2'){
                return;
            }
            var s = document.createElement('script');
            s.setAttribute('src', src);
            s.setAttribute('type', 'text/javascript');
            document.getElementsByTagName('head')[0].appendChild(s); 
        },
        whenLoaded: function(callback){
            if (typeof(window.jQuery) !== 'undefined' && window.jQuery.fn.jquery == '1.3.2') { 
                callback(window.jQuery); 
            } 
            else {
                setTimeout((function() {myBkl.whenLoaded(callback); }), 100);
            } 
        },
        init: function($){
            console.log($.fn.jquery);
        }
    };
    myBkl.loadScript('http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js');
    myBkl.whenLoaded(myBkl.init);

})();
Run Code Online (Sandbox Code Playgroud)

我使用这个bookmarklet构建器来创建书签http://subsimple.com/bookmarklets/jsbuilder.htm

显然,如果页面已经加载了jQuery.加载1.3.2脚本将覆盖页面上的window.jQuery对象.我只是想知道有没有让1.3.2加载到另一个自命名变量?用jQuery.noConflict(true);

jquery bookmarklet

5
推荐指数
2
解决办法
4518
查看次数

如何在修改web.config时阻止ASP.NET应用程序重新启动?

我通过该ApplicationHost.CreateApplicationHost方法托管ASP.NET运行时.当我修改web.config应用程序运行时,我看到很多第一次机会ThreadAbortException抛出.这是在我的应用程序崩溃之前.我假设这是因为运行时已检测到配置更改并想要重新启动.

这对我们来说并不是真正受支持的场景,所以我更愿意,如果我可以关闭自动重新加载.

有谁知道如何做到这一点?

asp.net iis web-config recycle httpruntime

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

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

枚举和常量.哪个用的?

我正在对枚举进行一些阅读,发现它们与声明常量非常相似.我怎么知道何时使用常量而不是枚举,反之亦然.使用枚举有哪些优点?

c# language-agnostic enums

91
推荐指数
5
解决办法
6万
查看次数

如何隐藏表单

当我按下表单内的按钮时,我想要隐藏表单.当我这样做时,必须在任务栏中显示某些内容,如果我单击该内容,则表单将再次进入可见状态.

编辑:我不应该最小化或调整表单大小.

c#

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

NSString的内存问题

我遇到了NSString的问题.

NSString* str = [[NSString alloc] initWithString:@"Hello world"];
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我是否需要释放对象str?根据规则,此对象是使用alloc创建的,因此应使用release方法显式释放.但是,当我没有明确释放它时,我在仪器中找不到任何内存泄漏.当NSString被NSNumber替换时,会发生内存泄漏.

谁能给我一些建议?谢谢.

cocoa objective-c

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