Немного сомнений по поводу операторов приведения в C ++

reinterpret_cast , как мы знаем, может приводить любой тип указателя к любому другому типу указателя. Я хочу задать следующие вопросы относительно этого оператора приведения):

  1. Как работает reinterpret_cast , что это за магия (внутренняя реализация), позволяющая работать reinterpret_cast?
  2. Как обеспечить безопасность при использовании reinterpret_cast ? Насколько я знаете, это не гарантирует безопасного преобразования. Итак, какие меры предосторожности следует предпринять при использовании reinterpret_cast?
  3. Каково практическое использование этого оператора. Я действительно не сталкивался с ним в моем профессиональном опыте программирования, в котором я мог бы Не обойтись без этого оператора. Любые практические примеры, кроме обычных int * и char *, будут очень полезны и оценены.

Еще один вопрос относительно операторов приведения в целом:
21–24 »,« пол »:« Мужской »,« местоположение »:« Сан-Франциско, Калифорния »,« рейтинг влиятельных лиц »:« 70–79 »,« интересы »: {« Развлечения »: {« Знаменитости »: { «Меган ...

веб-служба возвращает следующий вложенный объект json:

{"age":"21-24","gender":"Male","location":"San Francisco, CA","influencer score":"70-79","interests":{"Entertainment":{"Celebrities":{"Megan Fox":{},"Michael Jackson":{}},},"Social Networks & Online Communities":{"Web Personalization": {},"Journals & Personal Sites": {},},"Sports":{"Basketball":{}},},"education":"Completed Graduate School","occupation":"Professional/Technical","children":"No","household_income":"75k-100k","marital_status":"Single","home_owner_status":"Rent"}

Я просто хочу перебрать этот объект без указания имени свойства, я попробовал следующий код:

for (var data in json_data) {
    alert("Key:" + data + " Values:" + json_data[data]);
}

однако он печатает значение как [объект Object], если это вложенное значение, есть ли способ продолжить итерацию глубже вложенных значений?

5
задан palswim 5 November 2010 в 21:00
поделиться