小编was*_*ash的帖子

用户定义的C++转换

最近,我浏览 O'Reilly Media 的C++ Pocket Reference副本,当我遇到一个关于用户定义类型的用户定义转换的简短部分和示例时,我感到很惊讶:

#include <iostream>

class account {

    private:
        double balance;

    public:
        account (double b) { balance = b; }

        operator double (void) { return balance; }
};

int main (void) {

    account acc(100.0);
    double balance = acc;

    std::cout << balance << std::endl;

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

我用C++编程了一段时间,这是我第一次看到这种运算符重载.这本书对这个主题的描述有些简短,给我留下了一些关于这个功能的未解答的问题:

  • 这是一个特别模糊的功能吗?正如我所说,我已经用C++编程了一段时间,这是我第一次遇到这个问题.我没有太多运气找到更深入的材料.
  • 这相对便携吗?(我正在编写GCC 4.1)
  • 是否可以完成用户定义的用户定义转换?例如

    operator std :: string(){/*code*/}

c++ operator-keyword

9
推荐指数
2
解决办法
4607
查看次数

RHEL 和 Debian 上的 Python 脚本行为不同,Python 版本几乎相同

我很少在论坛上发布问题,但这个问题让我难住了。我很好奇导致此问题的原因(解决方案也很好,但最重要的是,我想知道为什么会遇到此问题):

我最近编写了一个 python 脚本,用于包装由 PBS 作业启动的远程命令的调用:

#! /usr/bin/env python
#
# Copyright (c) 2009 Maciej Brodowicz
# Copyright (c) 2011 Bryce Lelbach
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

from datetime import datetime

from string import letters, digits

from types import StringType

from optparse import OptionParser

from threading import Thread

# subprocess instantiation wrapper. Unfortunately older Python still lurks on
# some machines.
try:
  from subprocess import Popen, …
Run Code Online (Sandbox Code Playgroud)

python debian rhel

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

标签 统计

c++ ×1

debian ×1

operator-keyword ×1

python ×1

rhel ×1