小编Anj*_* Jo的帖子

通过Java中的三元运算符传递方法参数

码:

public class Foo {

    static void test(String s){
        System.out.println("String called");
    }

    static void test(int s){
        System.out.println("int called");
    }

    public static void main(String[] args) throws Exception {

        test(5>8? 5:8);         // Line 1
        test(5>8? "he":"ha");   // Line 2

        test(5>8? 5:"ha");      // Line 3

        System.out.println(5<8? 5:"ha"); //Line 4
    }
}
Run Code Online (Sandbox Code Playgroud)

当我执行此代码时,出现以下错误 Line 3

Foo.java:24: error: no suitable method found for test(INT#1)
                test(5>8? 5:"ha");              // Line 3
                ^
Run Code Online (Sandbox Code Playgroud)

在三元运算符中使用类似的类型不会产生错误。但是使用不同的类型只会给方法调用带来错误,test(5>8? 5:"ha");但对调用有效System.out.println(5<8? 5:"ha");

当我添加另一个重载的方法时static void test(Object s){},然后进行//Line 3编译。 …

java ternary-operator return-value ocpjp

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

如何访问另一个源文件中“结构”的静态成员

我正在创建一个小程序来进行计费。我正在尝试访问在另一个源文件中的头文件中声明的静态成员 static double total 。Java 是我的第一门语言,因此在用 C++ 对其进行分类时遇到了麻烦。

当我尝试时,出现以下错误。

bill.cpp(16):错误 C2655:'BillItem::total':定义或重新声明在当前范围内非法

bill.h(8):注意:参见'BillItem::total'的声明

bill.cpp(16): 错误 C2086: 'double BillItem::total': 重新定义

bill.h(8): 注意:见“total”的声明

我怎样才能使它可用。谷歌搜索错误没有帮助。

我想要实现的是在一个结构中创建一个静态双变量,这对所有结构实例都是通用的。我需要在另一个源文件中访问这个静态变量,我将在其中进行计算。

比尔.h

#pragma once

struct BillItem
{
public:
    static double total;
    int quantity;
    double subTotal;
};
Run Code Online (Sandbox Code Playgroud)

比尔.cpp

#include<iostream>
#include "Item.h"
#include "Bill.h" 

void createBill() {
    double BillItem::total = 10;
    cout << BillItem::total << endl;
}
Run Code Online (Sandbox Code Playgroud)

主代码.cpp

#include <iostream>
#include "Bill.h"

int main() {
    createBill();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ struct static-members

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

C++:如何在使用带有 ifstream 对象的 getline() 从文件中读取一行时跳过第一个空格?

我有一个名为“items.dat”的文件,在订单 itemID、itemPrice 和 itemName 中有以下内容。

item0001 500.00 item1 name1 with spaces
item0002 500.00 item2 name2 with spaces
item0003 500.00 item3 name3 with spaces
Run Code Online (Sandbox Code Playgroud)

我编写了以下代码来读取数据并将其存储在结构中。

#include <fstream>
#include <iostream>
#include <string>
#include <cstdlib>
#include <iomanip>

using namespace std;

struct item {
    string name;
    string code;
    double price;
};

item items[10];

void initializeItem(item tmpItem[], string dataFile);

int main() {

    initializeItem(items, "items.dat");
    cout << items[0].name << endl;
    cout << items[0].name.at(1) << endl;
    return 0;
}

void initializeItem(item tmpItem[], string dataFile) {

    ifstream fileRead(dataFile); …
Run Code Online (Sandbox Code Playgroud)

c++ ifstream

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