Java: Получение шрифта с определенной высотой в пикселях

С помощью FontMetrics легко определить отображаемую высоту шрифта, но как насчет другого? Как я могу получить шрифт, который будет соответствовать определенной высоте в пикселях?

" Вызов barney :: barney () Вызов foo :: operator () () Вызов barney :: barney () Но ...

Вот программа, которая компилируется без предупреждения, например, на GNU C ++:

$ g++ -o t -Wall -pedantic -Wshadow t.cpp

$ ./t.exe
Calling barney::barney()
Calling foo::operator()()
Calling barney::barney()

Но она полностью не компилируется на MSVC ++:

$ cl /EHsc t.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

t.cpp
t.cpp(17) : error C2380: type(s) preceding 'fred' (constructor with return type, or illegal redefinition of current class-name?)
t.cpp(17) : error C2208: 'fred' : no members defined using this type

Более того, когда она компилируется, результат не такой, как я ожидал. Может ли кто-нибудь пролить свет на то, каким должно быть стандартное поведение для этого кода ?

Вот он:

#include 

using ::std::cerr;

struct fred;

struct foo {
   inline fred operator ()();
};

struct barney {
   barney() : v_(0) { cerr << "Calling barney::barney()\n"; }
   int v_;
};

struct fred : public barney {
   foo fred;
   int joe;
   struct fred memfunc() { return fred(); }
};

inline fred foo::operator ()()
{
   cerr << "Calling foo::operator()()\n"; return fred();
}

int main(int argc, const char *argv[])
{
   fred f;
   f.memfunc();
   return 0;
}

Он выводит следующее:

Calling barney::barney()
Calling foo::operator()()
Calling barney::barney()

Но я ожидал этого:

Calling barney::barney()
Calling barney::barney()

Почему я получаю вывод я делаю? Это стандартное поведение? Если да, то почему, какие разделы стандарта актуальны?

В дополнение к принятому ответу, Дэвид Родригес дал отличный ответ , подробно описав, где в стандарте говорится, что я разрешено объявить член с именем fred из struct fred . Получение данных из Интернета Я попытался реализовать его на Android 3.0, последней платформе для планшетов, однако я получаю такую ​​ошибку: «Невозможно разрешить хост« www.anddev.org »...

Я пробовал следовать этому руководству: Получение данных из Интернета

Я попытался реализовать его на Android 3.0, последней платформе для планшетов, однако получаю такую ​​ошибку: « Невозможно разрешить хост« www.anddev.org »Нет привязанного адреса с именем хоста. "

Вы можете проверить URL-адрес, который я использовал, чтобы доказать, что файл существует. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt

Я создал частный класс и расширил его с помощью asynctask. Вот код:

    private class Downloader extends AsyncTask{
    String myString = null;
    @Override
    protected String doInBackground(String... arg0) {
        try{
            URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt");
            URLConnection ucon = myURL.openConnection();
            InputStream is = ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);

            ByteArrayBuffer baf = new ByteArrayBuffer(50);
            int current = 0;
            while((current=bis.read())!=-1){
                baf.append((byte)current);
            }
            myString = new String (baf.toByteArray());
        }catch(Exception e){
            myString = e.getMessage();
        }
        return myString;
    }
@Override
protected void onPostExecute(String result){
    tv.setText(result);
}
}

Любая помощь будет принята с благодарностью.

97
задан Pratik Butani 23 January 2015 в 11:01
поделиться