问题列表 - 第27968页

这个C++ const引用访问器接口习惯用法有什么问题吗?

我正在将结构转换为类,因此我可以为我的变量强制执行setter接口.
但是,我不想更改读取变量的所有实例.所以我转换了这个:

struct foo_t {
    int x;
    float y;
};
Run Code Online (Sandbox Code Playgroud)

对此:

class foo_t {
    int _x;
    float _y;
public:
    foot_t() : x(_x), y(_y) {  set(0, 0.0);  }

    const int &x;
    const float &y;

    set(int x, float y)  {  _x = x;  _y = y;  }
};
Run Code Online (Sandbox Code Playgroud)

我对此感兴趣,因为它似乎模仿C#的公共只读属性的想法.
编译好,我还没有看到任何问题.

除了在构造函数中关联const引用的样板外,这个方法的缺点是什么?
有什么奇怪的别名问题吗?
为什么我以前没见过这个成语?

c++ const public accessor

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

Scala代码看起来更简单/更少行的Scala和Java代码示例?

我需要Scala和Java代码的一些代码示例(我也非常好奇),它们表明Scala代码比Java编写的代码更简单和简洁(当然两个示例都应该解决同样的问题).

如果只有Scala示例带有注释,例如"这是Scala中的抽象工厂,在Java中看起来会更麻烦",那么这也是可以接受的.

谢谢!

我最喜欢接受和这个答案

java comparison language-features scala

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

在Windows上使用sys/socket.h函数

我正在尝试在Windows中使用socket.h函数.基本上,我目前正在查看https://beej.us/guide/bgnet/html/multi/clientserver.html#datagram上的示例代码.我知道socket.h是一个Unix函数 - 无论如何我在编译这个示例代码时可以轻松地模拟该环境吗?不同的IDE /编译器会改变什么吗?

否则,我想我需要利用虚拟化的Linux环境,这可能是最好的,因为代码最有可能在UNIX环境中运行.

谢谢.

c sockets windows

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

无法分配tr1 :: shared_ptr

我有一个有tr1 :: shared_ptr作为成员的类,如下所示:

class Foo
{
    std::tr1::shared_ptr<TCODBsp> bsp;

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

在成员函数栏中,我尝试像这样分配它:

bsp = newTCODBsp(x,y,w,h);

然后g ++给了我这个错误

no match for ‘operator=’ in ‘((yarl::mapGen::MapGenerator*)this)->yarl::mapGen::MapGenerator::bsp = (operator new(40u), (<statement>, ((TCODBsp*)<anonymous>)))’ /usr/include/c++/4.4/tr1/shared_ptr.h:834: note: candidates are: std::tr1::shared_ptr<TCODBsp>& std::tr1::shared_ptr<TCODBsp>::operator=(const std::tr1::shared_ptr<TCODBsp>&)

在我的代码中,Foo实际上是yarl::mapGen::MapGenerator.我究竟做错了什么?

c++ variable-assignment shared-ptr

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

获取在功能中单击元素的ID

我想获取我点击的元素的ID.我将函数放在onclick元素中,如下所示:

<a id="myid" class="first active" onclick="markActiveLink();" href="#home">Home</a>
Run Code Online (Sandbox Code Playgroud)

这是在功能:

function markActiveLink() {   
    alert($(this).attr("id"));
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它说它没有定义.它是否真的忘记了ID,我是否必须在onclick中键入它?

javascript jquery

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

阻止<input>元素在iPhone上滚动屏幕?

<input type="number">我的网页上有几个元素.我正在使用jQTouch,我一直想保持全屏; 也就是说,水平滚动很糟糕.每当我点击一个<input>元素时,页面会向右滚动,在屏幕右侧显示黑色边框并使所有内容失真.输入从屏幕左侧偏移,它们从页面中间的某处开始.

如何防止此焦点滚动?

javascript iphone safari web-applications jqtouch

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

尝试使用Python格式化货币的问题(Django)

我在Django中有以下代码:

import locale 
locale.setlocale( locale.LC_ALL, '' )

def format_currency(i):
    return locale.currency(float(i), grouping=True)
Run Code Online (Sandbox Code Playgroud)

它在开发模式下的某些计算机上运行,​​但是一旦我尝试在生产模式下部署它,我就会收到此错误:

Exception Type: TemplateSyntaxError
Exception Value: Caught ValueError while rendering: Currency formatting is not possible using the 'C' locale.
Exception Location: /usr/lib/python2.6/locale.py in currency, line 240
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我可以在生产服务器上执行此操作,它可以正常工作:

python manage.py shell
>>> import locale 
>>> locale.setlocale( locale.LC_ALL, '' )
'en_CA.UTF-8'
>>> locale.currency(1, grouping=True)
'$1.00'
Run Code Online (Sandbox Code Playgroud)

我......不明白.我

python django

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

Ruby有什么类似bpython的东西吗?

bpython相比,IRb非常简单,即使使用wirble也是如此.

有没有红宝石相当于bpython?

ruby python ide irb bpython

20
推荐指数
2
解决办法
1972
查看次数

使用Javascript计算CSV中的行数

我正在尝试使用Javascript来计算.csv文件中的行数,有人可以指导我的任何有用的提示或资源吗?

javascript csv lines count

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

嵌套if ... else流的更简单/更有效的方法?

我正在为一个基于Flash客户端的游戏开发仿真服务器,它有一个"宠物系统",我想知道是否有更简单的方法来检查指定宠物的等级.

当前代码:

public int Level
{
    get
    {
        if (Expirience > 100) // Level 2
        {
            if (Expirience > 200) // Level 3
            {
                if (Expirience > 400) // Level 4 - Unsure of Goal
                {
                    if (Expirience > 600) // Level 5 - Unsure of Goal
                    {
                        if (Expirience > 1000) // Level 6
                        {
                            if (Expirience > 1300) // Level 7
                            {
                                if (Expirience > 1800) // Level 8
                                {
                                    if (Expirience > 2400) // Level 9
                                    { …
Run Code Online (Sandbox Code Playgroud)

.net c#

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